0

pom.xml 使用分类器构建 jars(用于开发、测试、阶段环境)。例如

 <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-default-jenkins-dev.jar

有人可以帮忙吗?

4

1 回答 1

3

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

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

  • 您是否注意配置文件以检查将要构建的源?
  • 照顾好配置文件来定义你的依赖关系吗?
  • 为什么开发配置文件是 activeByDefault ?
  • 您是否使用相同的詹金斯工作来构建(默认和第二个)?在这种情况下,请注意工作空间将为两个构建共享。

替代解决方案:

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

于 2013-01-31T15:59:30.477 回答