mem*_*und 5 java svn maven maven-module
我想在某种全局项目目录中有一个模块,以便我可以将该模块包含在使用该公共代码的所有其他项目中。
但是我怎么能告诉 Maven 父级pom包含和编译这个全局共享模块呢?以下不起作用:
svn/MyGlobalProject/project-commons/pom.xml //should be shared among different projects
svn/MyProject/web-parent/trunk/pom.xml //the parent pom used to build the application
svn/MyProject/web-parent/trunk/project-domain/pom.xml //submodule 1
svn/MyProject/web-parent/trunk/project-web/pom.xml //submodule 2
Run Code Online (Sandbox Code Playgroud)
父 pom.xml:
<project>
<groupId>de.project</groupId>
<artifactId>project-parent</artifactId>
<packaging>pom</packaging>
<modules>
<module>project-domain</module>
<module>project-web</module>
<module>../project-commons</module> <!-- Error -->
</modules>
</project>
Run Code Online (Sandbox Code Playgroud)
mvn package 结果是:
Child module trunk\project-commons of trunk\pom.xml does not exist
Run Code Online (Sandbox Code Playgroud)
如果您mvn install在该全局项目上运行,它将安装在您的本地存储库中。然后,您的其他项目可以将其作为依赖项引用:
<dependency>
<groupId>whatever</groupId>
<artifactId>project-commons</artifactId>
<version>1.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这种简单方法的缺点是,在签出project-commons并运行mvn install.
更高级的方法是部署可通过网络访问的存储库(例如Artifactory或 Nexus),您可以将全局工件部署到其中。Artifactory 有一个免费的社区版。然后,您可以在设置文件中列出此存储库,Maven 将解析上传到其中的工件。
| 归档时间: |
|
| 查看次数: |
2593 次 |
| 最近记录: |