Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven:版本似乎会影响relativePath_Maven_Maven 3 - Fatal编程技术网

Maven:版本似乎会影响relativePath

Maven:版本似乎会影响relativePath,maven,maven-3,Maven,Maven 3,当父pom的版本不同但相对路径相同时,我得到两个不同的结果。从我对relativePath标记的有限理解来看,relativePath压倒了版本,但似乎版本优先于relativePath。relativePath不适用于版本吗?以下各项之间的区别是什么: <parent>com.company.thing</product> <groupId>a-pom-file</groupId> <version>a</ver

当父pom的版本不同但相对路径相同时,我得到两个不同的结果。从我对relativePath标记的有限理解来看,relativePath压倒了版本,但似乎版本优先于relativePath。relativePath不适用于版本吗?以下各项之间的区别是什么:

<parent>com.company.thing</product>
    <groupId>a-pom-file</groupId>
    <version>a</version>
    <relativePath>../pom.xml</relativePath>
</parent>
com.company.thing
a-pom-file
A.
../pom.xml

com.company.thing
a-pom-file
B
../pom.xml

不,relativePath并没有压倒版本。版本必须正确且可用。它必须在存储库、默认位置(pom文件是当前项目的上一个目录)或指定的relativePath中可用。因此,在您的场景中,relativePath实际上没有任何效果,因为默认情况下,Maven将在这里查找您的父pom


路径
。/pom.xml
中有哪个版本的工件。深入查看maven的输出,因为maven可能会尝试根据您的本地存储库而不是
中的存储库来解决它。
。首先,让我提到,我正在重构maven的一个不正确用法(类似ant),以遵循行业标准,这就是问题所在。无论如何,如果我有多个级别的父级,那么我的relativePath会在一路上损坏,这要求后续的父级pom必须有一个空的relativePath标记,例如:。有没有想过为什么?不太可能,我们在某些情况下使用了多个级别的家长,但在所有这些情况下,我们也明确设置了relativePath。
<parent>com.company.thing</product>
    <groupId>a-pom-file</groupId>
    <version>b</version>
    <relativePath>../pom.xml</relativePath>
</parent>