寻找在jenkins作业中复制pom.xml文件的替代方法

时间:2016-08-03 10:53:32

标签: .net maven jenkins

我正在使用jenkins / maven构建一个dotnet解决方案。当进程启动时,它会查看打包标记并相应地决定构建xl-deploy zip文件或使用提供的nuspec文件并构建nuget包。 该行为目前由包装标签的值驱动。

我们之前从未有过此要求,因此能够做一件事(XLDeploy)或其他(nuget包)不是问题。但现在我们需要能够在相同的jenkins工作中使用相同的pom.xml文件执行这两项操作。

  • 我试图将包装放在个人资料中 - >不去了
  • 我试图用-Dpackaging重叠包装 - >没有去(如果我已经正确阅读,这是一个maven属性而不是pom属性)

我目前的解决方案是复制pom.xml文件并更改每个副本中的标记 - >我认为这不是一个干净的解决方案。

有人能想出更好的主意吗? (我知道TeamCity可以做到这一点,但迁移还不是一种选择)

非常感谢, 的问候,

2 个答案:

答案 0 :(得分:0)

如果我理解正确,你有一个pom来做包装,它有一个类似于

的插件
<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>2.6</version>
  <configuration>
    <descriptors>
      <descriptor>src/main/assembly/assembly.xml</descriptor>
    </descriptors>
  </configuration>
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
        <goal>single</goal>
      </goals>
    </execution>
  </executions>
</plugin>

然后在assembly.xml中,每次都可以添加两种格式,即使其中一种格式未被使用。

<formats>
  <format>zip</format>
  <format>tar</format>
</formats>

答案 1 :(得分:0)

感谢您的提示,但由于拥有内部插件,并且使用nuget / nuspec部分进行重型滑动,因此无法工作。 我结束了2个poms,删除了XLdeploy部件并创建了2个jenkins作业,一个用于XLDeploy,另一个用于nuget。 内部插件与maven生命周期过于紧密相关(很快就会退休)。