java如何定义SuperParam的路径?
有专家吗?我继承了一个巨大的maven项目,并试图将其编译。没走多远。我参加最高级别的pom。我能找到的xml,位于主干目录中,比主项目低一层。然后我发出命令“mvn验证”。获取以下错误:
[INFO] Scanning for projects...
Downloading: http://repo1.maven.org/maven2/com/mycompany/neto/vsd/vsd-superpom/1.1.0/vsd-superpom-1.1.0.pom
[INFO] Unable to find resource 'com.mycompany.neto.vsd:vsd-superpom:pom:1.1.0' in repository central (http://repo1.maven.org/maven2)
我注意到一个vsd SuperPM文件夹与主项目处于同一级别,所以我猜主项目需要指向它的某个地方?看着球。我明白了
<parent>
<groupId>com.mycompany.neto.vsd</groupId>
<artifactId>vsd-superpom</artifactId>
<version>1.1.0</version>
</parent>
我应该将vsd SuperPM文件夹放在哪里才能找到它?我不明白它为什么要下载它。我在pom里什么也没看到。告诉它这样做的xml
# 1 楼答案
我看到(并使用)的常见项目结构是:
pom.xml
-我的模块的父POM,带有父../pom.xml
pom.xml
-具有父../foo-parent/pom.xml
的模块POMpom.xml
-没有父节点的多模块POM现在,如果我想构建foo模块,我需要在顶层文件夹中运行:
换句话说,您总是在构建多模块项目。但是,您可以指定只对某些子模块(
-pl
)及其依赖项(-am
)感兴趣# 2 楼答案
见Apache Maven Install Plugin文件
因此,如果您的超级pom独立于项目的其余部分,那么您只需从超级pom文件夹中调用
mvn install
,这样它就会被放置到您的本地存储库中。那会解决你的问题通常,顶级项目pom定义项目依赖项,它应该足以调用
mvn verify | compile | ...
如果顶级pom依赖于超级pom,则必须首先安装超级pom(或定义包含子模块super pom和项目其余部分的pom)