我遇到问题了,我有一个基于包含模块的系统的项目。这些模块是其他Maven项目,并从系统POM引用。我的问题是我与同事共享系统项目,我们有不同的模块。只有在存在Maven依赖项时才存在
那么,有没有办法告诉Maven我只想包含一个在我的POM中引用的模块,只要这个模块存在?我的意思是,没有编译失败。
谢谢!
我遇到问题了,我有一个基于包含模块的系统的项目。这些模块是其他Maven项目,并从系统POM引用。我的问题是我与同事共享系统项目,我们有不同的模块。只有在存在Maven依赖项时才存在
那么,有没有办法告诉Maven我只想包含一个在我的POM中引用的模块,只要这个模块存在?我的意思是,没有编译失败。
谢谢!
使用dependencyManagementis将所有依赖信息拉入公共POM文件,简化了子POM文件中的引用。
有几种解决方案,取决于您可以做什么/想要达到什么。
一种方法是在贵公司安装Maven存储库服务器(在本地局域网或您和您的同事共享的局域网中)。建立系统,然后将模块deploy发送到服务器。
在你的构建,你可以添加这个新的服务器是这样的(documentation):
<project>
...
<repositories>
<repository>
<id>my-internal-site</id>
<url>http://myserver/repo</url>
</repository>
</repositories>
...
</project>
或者你也可以复制两者基本系统,并与当地mvn install
建立它。这会将所有工件复制到本地缓存中。
从那里,你可以像往常一样引用它们。您不需要包含所有模块;只是你真正需要的。这样,你和你的朋友就不必使用相同的依赖关系。
我建议使用profiles并在file/exists
选项上激活它们。
我想你可以声明它是可选的。 http://maven.apache.org/pom.html#Dependencies –
http://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html –