2

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

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

谢谢!

4

3 回答 3

2

我建议使用配置文件file/exists并在选项上激活它们。

于 2012-05-15T12:57:07.457 回答
1

有几种解决方案,具体取决于您可以做什么/想要实现什么。

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

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

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

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

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

于 2012-05-15T10:21:59.357 回答
1

使用dependencyManagementis 将所有依赖信息拉到一个通用的POM 文件中,简化子POM 文件中的引用。

于 2012-05-15T09:55:15.043 回答