[英]Missing Maven dependencies in Eclipse multi-module project
我正在使用與STS捆綁的m2e插件(v1.0.200.20111228-1245)的STS 2.9.1(基於Eclipse 3.7.2構建)。
我有一個問題,關於Eclipse項目中缺少包含幾個模塊的依賴項,或者我可能不完全理解它應該如何工作。
這是一個maven項目。
在我的項目>屬性> Java構建路徑>庫中我有“Maven Dependencies”庫,但它是空的(這就是問題)。
主POM沒有任何依賴關系,但它有幾個模塊聲明。 向模塊的POM添加依賴項不會將其添加到“Maven Dependencies”庫(我的期望),並導致Eclipse在源文件中顯示錯誤。
向主POM添加依賴項會將其添加到“MD”庫中,但當然我不想將所有模塊的依賴項添加到主POM中,只是為了將它放在“MD”庫中並添加每個依賴項。建立路徑似乎不正確也不實用。
我試過了:
上述所有似乎都無法解決問題。
例:
簡化的項目結構:
simple.project / pom.xml中:
<project ...>
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>simple.project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>sample-module</module>
</modules>
<dependencies>
<dependency><!-- This dependency is present in "MD" lib. -->
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
simple.project /采樣模塊/ pom.xml中:
<project ...>
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>simple.project</artifactId>
<groupId>test</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>test</groupId>
<artifactId>sample-module</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency><!-- I've expected this dependency also to appear in "MD" lib. -->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
它不應該工作。 如果項目依賴於該項目(使用dependency
)或者從它繼承(使用parent
),則項目僅從另一項項目中導入依賴項。 module
元素僅表示聚合 。
問題是從不久前開始,但我解決了這個問題,創建了一個Maven項目並添加了Maven模塊:右鍵單擊項目和“New> Project ...> Maven> Maven Module”。 之后,代碼中不再顯示錯誤。
我看到的第一件事是你在pom父級中定義依賴項。 在那里我期望看到<dependencyManagement>
( 參見此處的doc )結構。 通過這種方式,子模塊將正確地繼承那些公共依賴項。
除此之外,讓我們開始進行最簡單的測試。 嘗試在命令行中從maven實用程序編譯項目。 如果它有效,那么Eclipse配置就會出現問題,否則問題在於您定義項目的方式。
如果您的項目從命令行正確編譯,讓我們看看還有什么可以發生。
Maven Dependencies Library為空的事實意味着Eclipse Maven插件無法正確解析您的poms。 我對嵌入式STS maven插件的體驗非常糟糕。 嘗試將其降級到m2e 0.10版本。 您只需要打開STS DashBoard / Find Updates / Install m2e 0.10
我希望其中一些技巧可以幫到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.