最佳Eclipse(Luna)设置与依赖Maven项目

时间:2015-02-11 08:09:34

标签: java eclipse maven eclipse-luna

我正在使用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的更改。

还有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

在项目A属性中,转到 Java Build Path ,然后在 Libraries 选项卡中删除对M2_REPO/path/to/B-version.jar。然后,在 Projects 选项卡中,添加对项目B的引用。

请注意,如果这些是一个父模块的两个模块(即pom.xml部分中AB都有<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/才能使用动态依赖关系管理。