我有多个maven项目,要在它们之间添加依赖项,我只需将它添加到POM中,例如:
<dependency>
<groupId>com.company</groupId>
<artifactId>XMLManagement</artifactId>
<version>1.0</version>
</dependency>
我正在使用eclipse,一切都运行良好,直到我尝试释放一个jar。
**问题1:** Maven抛出一个错误,因为它无法在本地存储库中找到它依赖的其他maven项目的jar, 这意味着我必须弄清楚项目之间的依赖关系,并按正确的顺序转到每个项目并运行&#34; mvn clean install&#34;
这似乎不合逻辑,因为这是maven的主要目的,必须有一种方法告诉maven自己做。
**问题2:**如果项目A依赖于依赖于C的B,并且我想在A中使用C然后在eclipse中足够我在A的POM中添加B并且它可以工作,但是当我运行时&#34; mvn clean install&#34; maven抛出一个错误,它缺少C的依赖性。 这意味着我必须添加A和C之间的依赖关系,这没有意义,因为在eclipse中我已经在&#34; Maven Dependencies&#34;下看到了它,所以如果eclipse认识到它为什么mvn clean install并不是&# 39;吨?
请注意,我能够在最后生产我需要的罐子,但是只有在经过如上所述的大量努力之后才能生产。
我知道我可以使用像nexus或artifactory这样的东西,但这对我来说太过分了,我希望能够在本地存储库中进行。
我正在寻找合适的方法来做任何建议吗?
答案 0 :(得分:3)
您需要的是一个顶级pom,它列出了您希望构建为模块的每个内容。在maven术语中,这被称为reactor build。
类似的东西:
function customSort(array, arrayOrder, numColumn) {
var order = [];
// transpose vertical 2d array into 1d array
for (var i = 0; i < arrayOrder.length; i++) {
order.push(arrayOrder[i][0]);
}
// sort
return array.sort(function (a, b) {
return order.indexOf(a[numColumn-1]) - order.indexOf(b[numColumn-1]);
});
}
答案 1 :(得分:1)
试试这个,找到你的文件 settings.xml 配置路径存储库的方法:
<localRepository>E:\repositoryMavem</localRepository>
mvn install:install-file -Dfile=E:\repositoryMavem\XMLManagement-1.0.jar -DgroupId=com.company -DartifactId=XMLManagement -Dversion=1.0 -Dpackaging=jar