2012-05-15 32 views
1

我遇到问题了,我有一个基于包含模块的系统的项目。这些模块是其他Maven项目,并从系统POM引用。我的问题是我与同事共享系统项目,我们有不同的模块。只有在存在Maven依赖项时才存在

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

谢谢!

+2

我想你可以声明它是可选的。 http://maven.apache.org/pom.html#Dependencies –

+0

http://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html –

回答

1

使用dependencyManagementis将所有依赖信息拉入公共POM文件,简化了子POM文件中的引用。

0

有几种解决方案,取决于您可以做什么/想要达到什么。

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

在你的构建,你可以添加这个新的服务器是这样的(documentation):

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

或者你也可以复制两者基本系统,并与当地mvn install建立它。这会将所有工件复制到本地缓存中。

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

相关问题