我在STS(v1.0.200.20111228-1245)捆綁的m2e插件上使用了STS 2.9.1(構建於Eclipse 3.7.2上)。
我有一個關於在包含幾個模塊的Eclipse項目中缺失依賴關係的問題,或者我可能沒有完全理解它應該如何工作。在Eclipse多模塊項目中缺少Maven依賴關係
這是一個maven項目。
在我的項目>屬性> Java構建路徑>庫我有「Maven Dependencies」庫,但它是空的(這就是問題所在)。
主POM沒有任何依賴關係,但它有幾個聲明的模塊。 向模塊的POM添加依賴不會將它添加到「Maven Dependencies」庫(我的期望是什麼),並導致Eclipse在源文件中顯示錯誤。
向主POM添加一個依賴關係將它添加到「MD」庫中,但是當然我不想將所有模塊的依賴關係添加到主POM中,只需將它放入「MD」庫並添加每個對構建路徑的單一依賴似乎並不正確也不實際。
我已經試過:
- 項目>清潔,
- 的Maven>更新的依賴,
- 的Maven>更新項目配置,
- 取消選中該複選框:項目>屬性>的Maven>解析Workspace項目的依賴關係。
以上都不是好伎倆。
實施例:
簡化項目結構:
- simple.project
- ...
- 採樣模塊
- ...
- 的pom.xml
- 的pom.xml
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>
沒有你的POM我幫不了你。請粘貼相關部分。粘貼也是Eclipse顯示你的錯誤。 (我假設你正在使用m2e 1.0或更高版本。) – 2012-04-17 13:14:16
我編輯了我的原始文章,以更好地描述我的問題。 – efesjan 2012-04-17 13:40:43
Eclipse中顯示的錯誤是無關緊要的。他們是基本錯誤,說我的代碼中引用的某些類從類路徑中丟失(因爲它們沒有添加到「MD」庫,因爲我已經預料到它們是)。 – efesjan 2012-04-17 13:46:55