我有一个问题,我有一个基于包含模块的系统的项目。此模块是其他 maven 项目,并从系统 POM 中引用。我的问题是我与同事共享系统项目,我们有不同的模块。
那么,有没有办法告诉 Maven,只有当这个模块存在时,我才想在我的 POM 中包含一个引用的模块?我的意思是,没有编译失败。
谢谢!
我建议使用配置文件file/exists
并在选项上激活它们。
有几种解决方案,具体取决于您可以做什么/想要实现什么。
一种方法是在您的公司(在您的本地 LAN 或您和您的同事共享的 LAN 中)安装一个 Maven 存储库服务器。构建系统,然后将模块部署到服务器。
在您的构建中,您可以像这样添加这个新服务器(文档):
<project>
...
<repositories>
<repository>
<id>my-internal-site</id>
<url>http://myserver/repo</url>
</repository>
</repositories>
...
</project>
或者您可以同时复制基本系统并使用mvn install
. 这会将所有工件复制到本地缓存中。
从那里,您可以照常引用它们。您不需要包含所有模块;只是你真正需要的。这样,您和您的朋友就不必使用相同的依赖项。
使用dependencyManagementis 将所有依赖信息拉到一个通用的POM 文件中,简化子POM 文件中的引用。