我正在使用Eclipse Luna,我有两个Maven Java项目A和B,其中A依赖于B. 我想同时编辑它们(并从Eclipse的重构功能等中受益)。 什么是最好的设置?
我目前正在使用以下具有一些缺点的设置,如下所述。
我首先构建项目B并安装它,然后生成一个Eclipse项目
# cd B
B # mvn package install
B # mvn eclipse:eclipse
然后构建A并生成Eclipse项目:
# cd ../A
A # mvn package
A # mvn eclipse:eclipse
我现在可以将这两个项目导入Eclipse。
我的问题是A现在使用已安装的B版本而不是当前在Eclipse中打开的版本。
也就是说,在每次更新到B之后,我必须为B执行mvn install
,并为A显示(显然)mvn eclipse:eclipse
以查看我在Eclipse中反映的对B的更改。
还有更好的方法吗?
答案 0 :(得分:0)
在项目A
的属性中,转到 Java Build Path ,然后在 Libraries 选项卡中删除对M2_REPO/path/to/B-version.jar
。然后,在 Projects 选项卡中,添加对项目B
的引用。
请注意,如果这些是一个父模块的两个模块(即pom.xml
部分中A
和B
都有<modules>
,那么{{1在父模块上调用时会自动执行此操作。
答案 1 :(得分:0)
我认为你的问题是,eclipse:eclipse为每个依赖项生成一个类路径条目,如
<classpathentry kind="var" path="M2_REPO/com/google/guava/guava/18.0/guava-18.0.jar"/>
在 .classpath 文件中,而不是
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
我不知道哪个目标做得更好,但是当您使用eclipse的导入向导导入maven项目时, .classpath 文件将使用MAVEN2_CLASSPATH_CONTAINER进行配置。
您需要插件http://eclipse.org/m2e/才能使用动态依赖关系管理。