父版本的Maven子依赖性错误

时间:2017-01-13 12:29:25

标签: java maven streambase

我们有下一个项目结构:

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]

提前致谢。

1 个答案:

答案 0 :(得分:0)

我担心它不会像那样工作。参数化<version>值是一个坏主意,因为即使您设法将其部署到远程仓库,以后使用该工件的任何项目都不会知道${cerebro.version}应解决的问题至。

请记住,Maven努力保持您的构建可重现性。如果构建依赖于部署时已知的某个变量,但对于依赖项未知,则构建将不再可重现。