由于工作空间的想法,许多 Eclipse 用户习惯于平面布局,因此希望保持这种结构。以下示例展示了如何使用 Eclipse 处理标准 Maven 分层项目布局和类似 Eclipse 的平面布局的 Maven 多模块项目。
假设 Eclipse 是您最喜欢的 SCM 客户端,这个分步示例展示了如何设置一个新的多模块项目。
mvn archetype:create -DgroupId=guide.ide.eclipse -DartifactId=guide-ide-eclipse
<packaging>pom</packaging>
cd guide-ide-eclipse mvn archetype:create -DgroupId=guide.ide.eclipse -DartifactId=guide-ide-eclipse-site mvn archetype:create -DgroupId=guide.ide.eclipse.core -DartifactId=guide-ide-eclipse-core mvn archetype:create -DgroupId=guide.ide.eclipse.module1 -DartifactId=guide-ide-eclipse-module1
<modules> <module>guide-ide-eclipse-site</module> <module>guide-ide-eclipse-core</module> <module>guide-ide-eclipse-module1</module> </modules>
<parent> <groupId>guide.ide.eclipse</groupId> <artifactId>guide-ide-eclipse</artifactId> <version>1.0-SNAPSHOT</version> </parent>
<dependency> <groupId>guide.ide.eclipse.core</groupId> <artifactId>guide-ide-eclipse-core</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
mvn install mvn eclipse:eclipse
target .classpath .project .wtpmodules
即使是父项目也应该有这个.cvsignore -file。 当您从存储库中签出项目时,Eclipse 将自动生成一个新的简单.project文件。
从现在开始,您有不同的选择可以继续。如果您同时处理所有模块并且您希望拥有 Eclipse 项目依赖项而不是二进制依赖项,那么您应该设置一个新工作区并从step-by-step/guide-ide-eclipse导入所有项目 。请注意,您必须先删除 父项目的.project文件。结果与从命令行签出整个项目、运行mvn eclipse:eclipse 并最终将项目导入 Eclipse 工作区中的结果相同。在这两种情况下,您都可以使用 Eclipse 同步您的更改。
在涉及许多开发人员的大型项目中,检查所有模块并使其保持最新可能会很乏味。特别是如果您只对一两个模块感兴趣。在这种情况下,使用二进制依赖会更舒服。只需检查您要使用 Eclipse 处理的模块并为每个模块运行mvn eclipse:eclipse (另请参阅Maven as an external tool 。当然,所有引用的工件都必须可从您的 maven 存储库中获得。
可以将父 POM 移动到其自己的目录中与引用的模块处于同一级别,从而产生平面项目布局。
使用平面项目布局,您可以签出和编辑父 POM,而无需签出整个项目。
<modules> <module>../guide-ide-eclipse-site</module> <module>../guide-ide-eclipse-core</module> <module>../guide-ide-eclipse-module1</module> </modules>
问题: 发布插件不支持平面结构(MRELEASE-6 )。