我们有下一个项目结构:
parentPom.xml
java项目
streambase项目
streambaseParentPom.xml
PROJECT1
project2(具有project1的依赖关系)
所以我们有一个parentPom继承到streambaseParentPom,最后一个继承到所有的streambase项目。 因此,我们尝试在parentPom中使用一个名为cerebro.version的属性来定义父级的版本。 当我们将project1作为其他项目的依赖项时,我们遇到问题,我们收到下一条错误消息:
[ERROR] Failed to execute goal on project eFX-SB7-Pricing: Could not resolve dependencies for project com.santander.fx:eFX-SB7-Pricing:jar:3.14.10.0.4-SNAPSHOT:
Failed to collect dependencies at com.santander.fx:eFX-SB7-Common:jar:3.14.10.0.4-SNAPSHOT:
Failed to read artifact descriptor for com.santander.fx:eFX-SB7-Common:jar:3.14.10.0.4-SNAPSHOT:
Could not transfer artifact com.santander.fx:eFX-SB7-Parent:pom:${cerebro.version} from/to eFX-External-Repository (http://lnx-efxbuild2.ants.ad.anplc.co.uk:8081/artifactory/ext-release-local):
Illegal character in path at index 109: http://lnx-efxbuild2.ants.ad.anplc.co.uk:8081/artifactory/ext-release-local/com/santander/fx/eFX-SB7-Parent/${cerebro.version}/eFX-SB7-Parent-${cerebro.version}.pom -> [Help 1]
提前致谢。
答案 0 :(得分:0)
我担心它不会像那样工作。参数化<version>
值是一个坏主意,因为即使您设法将其部署到远程仓库,以后使用该工件的任何项目都不会知道${cerebro.version}
应解决的问题至。
请记住,Maven努力保持您的构建可重现性。如果构建依赖于部署时已知的某个变量,但对于依赖项未知,则构建将不再可重现。