我在jenkins里面使用maven clean install
。在jenkins中生成战争时排除文件
我的战争文件包含一个名为“.ebextensions”的文件夹。
我在詹金斯写了三份不同的工作。
一个用于生产,一个用于测试,另一个用于开发。
我想排除'.ebextensions'目录中的一些文件,同时在测试环境中产生战争,并在为开发环境产生战争时排除整个目录。
如何实现这一目标?
我在jenkins里面使用maven clean install
。在jenkins中生成战争时排除文件
我的战争文件包含一个名为“.ebextensions”的文件夹。
我在詹金斯写了三份不同的工作。
一个用于生产,一个用于测试,另一个用于开发。
我想排除'.ebextensions'目录中的一些文件,同时在测试环境中产生战争,并在为开发环境产生战争时排除整个目录。
如何实现这一目标?
添加到排除Maven的JAR-插件在你的pom.xml:
<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的,如果任务
<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
但它必须是它们在生产环境和测试环境中。是否有可能根据特定环境排除 –
更新解决方案 – user7294900
文件夹名称包含。(dot )ebextensions infront。所以它不是在eclipse中显示,但它存在于工作区中。如果我排除maven jar插件中的.ebextensions,它不排除。如果我排除assets文件夹,它工作正常。 (.ebextensions是基础设施相关的文件夹,它与aws elastic beanstalk有关。我试图将它部署在aws中。) –
你如何建立你的战争?蚂蚁/ Maven的/脚本?你能显示一部分复制类的脚本吗? – user7294900
我正在使用maven,干净安装 –
那么这不是一个[标签:jenkins]的问题.. – StephenKing