仅在Maven依赖项存在时包含它

时间:2012-05-15 09:51:21

标签: java maven

我遇到了问题,我的项目基于包含模块的系统。此模块是其他maven项目,并从系统POM引用。我的问题是我与同事共享系统项目,我们有不同的模块。

那么,有没有办法告诉Maven我想要包含我的POM中引用的模块,只有这个模块存在?我的意思是,没有编译失败。

谢谢!

3 个答案:

答案 0 :(得分:1)

使用dependencyManagementis将所有依赖关系信息提取到一个公共POM文件中,从而简化了子POM文件中的引用。

答案 1 :(得分:1)

我建议使用profiles并在file/exists选项上激活它们。

答案 2 :(得分:0)

有几种解决方案,取决于您可以做/想要实现的目标。

一种方法是在您的公司安装Maven存储库服务器(在您的本地LAN或您和您的同事共享的LAN中)。构建系统,然后deploy模块到服务器。

在您的构建中,您可以像这样添加此新服务器(documentation):

<project>
  ...
  <repositories>
    <repository>
      <id>my-internal-site</id>
      <url>http://myserver/repo</url>
    </repository>
  </repositories>
  ...
</project>

或者您可以复制基本系统并使用mvn install在本地构建它。这会将所有工件复制到本地缓存中。

从那里,您可以照常引用它们。您不需要包含所有模块;只是你真正需要的。这样,您和您的朋友就不必使用相同的依赖项。