具有相关 Maven 项目的最佳 Eclipse (Luna) 设置
Best Eclipse (Luna) setup with dependent Maven projects
我正在使用 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
才能看到我对 B 的更改反映在 Eclipse 中。
有没有更好的方法?
在项目 A
的 Properties 中,转到 Java Build Path,然后在 Libraries 选项卡删除对 M2_REPO/path/to/B-version.jar
的引用。然后,在 Projects 选项卡中,添加对项目 B
.
的引用
请注意,如果这些是一个父模块的两个模块(即您有一个 pom.xml
,在 <modules>
部分中同时包含 A
和 B
),那么 mvn eclipse:eclipse
将在该父模块上调用时自动执行此操作。
我认为你的问题是,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/ 才能使用动态依赖管理。
我正在使用 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
才能看到我对 B 的更改反映在 Eclipse 中。
有没有更好的方法?
在项目 A
的 Properties 中,转到 Java Build Path,然后在 Libraries 选项卡删除对 M2_REPO/path/to/B-version.jar
的引用。然后,在 Projects 选项卡中,添加对项目 B
.
请注意,如果这些是一个父模块的两个模块(即您有一个 pom.xml
,在 <modules>
部分中同时包含 A
和 B
),那么 mvn eclipse:eclipse
将在该父模块上调用时自动执行此操作。
我认为你的问题是,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/ 才能使用动态依赖管理。