在jenkins中生成战争时排除文件

时间:2017-07-23 04:06:50

标签: maven svn jenkins

我在jenkins中使用maven clean install

我的war文件包含一个名为“.ebextensions”的文件夹。

我在詹金斯写了三个不同的工作。

一个用于生产,一个用于测试,一个用于开发。

我希望在测试环境中生成战争时排除'.ebextensions'目录中的一些文件,并在为开发环境生成战争时排除整个目录。

如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

在pom.xml中添加对maven-jar-plugin的排除:

<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.3.1</version>
    <executions>
      <execution>
        <id>default-jar</id>
        <phase>package</phase>
        <goals>
          <goal>jar</goal>
        </goals>
        <configuration>
          <excludes>
            <exclude>**/ebextensions/*</exclude>
          </excludes>
        </configuration>
      </execution>
    </executions>
</plugin>

如果你需要特定的环境,maven不支持if语句, 你可以使用Ant-contrib的if任务

<configuration>
          <tasks>
            <taskdef resource="net/sf/antcontrib/antcontrib.properties"
              classpathref="maven.plugin.classpath" />
            <if>
              <equals arg1="${env}" arg2="development" />
              <then>
          <excludes>
            <exclude>**/ebextensions/*</exclude>
          </excludes>

              </then>
              <else>
                <echo message="Do not exclude" />
              </else>
            </if>
          </tasks>
        </configuration>

并发送到maven env参数:mvn install -Denv=development