Dea*_*Dea 2 path parent absolute maven-3 maven
与maven 3我在'C:/ travail/parent'有一个父项目.我有几个儿童项目,由于各种原因,他们可以改变位置.要进行战争,必须设置relativePath标记.
<parent>
<groupId>framework.parent</groupId>
<artifactId>parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>C:/Travail/parent/pom.xml</relativePath>
</parent>
Run Code Online (Sandbox Code Playgroud)
问题:如何为父母设置绝对路径?以下不起作用.
<relativePath>/C:/Travail/parent/pom.xml</relativePath>
Run Code Online (Sandbox Code Playgroud)
您不能为父pom使用绝对路径,配置条目的名称本身是非常自我解释的(相对路径).
从该元素的官方Maven模型文档:
签出中父pom.xml文件的相对路径.如果未指定,则默认为
../pom.xml.Maven首先在文件系统上的这个位置查找父POM,然后是本地存储库,最后在远程仓库中查找.relativePath允许您选择不同的位置,例如,当您的结构是平的时,或者更深,没有中间父POM.但是,组ID,工件ID和版本仍然是必需的,并且必须与给定位置中的文件匹配,否则它将恢复为POM的存储库.此功能仅用于增强该项目的本地结帐的开发.如果要禁用该功能,请将值设置为空字符串,并始终从存储库中解析父POM.
默认值为:../pom.xml.
你甚至不能使用快捷方式或符号链接,与每个模块一起分发并指向绝对文件位置,它不起作用(你不应该使用这样的技巧,即使它是去上班).
您甚至无法使用属性作为relativePath元素的值占位符.就像是:
<parent>
<groupId>framework.parent</groupId>
<artifactId>parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>${path.to.parent}</relativePath>
</parent>
Run Code Online (Sandbox Code Playgroud)
并尝试在构建时注入它,如:
mvn clean install -Dpath.to.parent=C:/somewhere/pom.xml
Run Code Online (Sandbox Code Playgroud)
根本不起作用,以下Maven门票也记录在案:
如官方文档中所述,此配置条目的唯一合理用例是平面结构化多模块项目,其中模块和父项目位于同一目录级别.
否则,也更适合你的使用情况,您需要提供父POM作为共享Maven仓库(如果有的话)的一部分,或者需要maven install(以便它在本地Maven缓存可用)父项目前期任何的在儿童/模块项目上任何所需的maven操作之前的新版本.
| 归档时间: |
|
| 查看次数: |
6232 次 |
| 最近记录: |