Maven Jar分类器

时间:2013-01-31 14:34:57

标签: maven pom.xml classification

pom.xml使用分类器(用于开发,测试,舞台环境)构建jar。 E.g。

 <profiles>
    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>jenkins-dev</id>
        <properties>
            <jar.classifier>default-jenkins-dev</jar.classifier>
        ...............
    </profile>

mercurial中有2个分支(默认,第二个)。

所以在第二个分支中,jar分类器是'second-jenkins-dev'。

有几个模块(例如A,B,C)

当默认分支中的一些模块最新构建时出现问题(A模块的最新jar时间是A-default-jenkins-dev.jar)我试图建立'第二'分支的整个战争。我得到的不是让A-second-jenkins-dev.jar作为一个依赖性 A-默认詹金斯-dev.jar

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

我认为您使用配置文件选择要构建的分支的策略令人困惑且容易出错(但这只是个人意见)。

我认为您需要检查以下内容以帮助您解决问题:

  • 您是否负责检查要构建的来源?
  • 确定配置文件以定义依赖关系吗?
  • 为什么dev配置文件是activeByDefault?
  • 你使用相同的jenkins工作来构建(默认和第二)吗?在这种情况下,请注意工作区将为两个版本共享。

替代解决方案:

修改分支second中的pom,不要使用配置文件来处理此问题。使用工件<version>来处理分支。保持<classifier>区分工件类型(例如,您可以基于相同的代码构建一个src jar和一个类jar:这就是maven分类器背后的想法)