2017-07-23 44 views
0

我在jenkins里面使用maven clean install在jenkins中生成战争时排除文件

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

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

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

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

如何实现这一目标?

+0

你如何建立你的战争?蚂蚁/ Maven的/脚本?你能显示一部分复制类的脚本吗? – user7294900

+0

我正在使用maven,干净安装 –

+0

那么这不是一个[标签:jenkins]的问题.. – StephenKing

回答

0

添加到排除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

+0

但它必须是它们在生产环境和测试环境中。是否有可能根据特定环境排除 –

+0

更新解决方案 – user7294900

+0

文件夹名称包含。(dot )ebextensions infront。所以它不是在eclipse中显示,但它存在于工作区中。如果我排除maven jar插件中的.ebextensions,它不排除。如果我排除assets文件夹,它工作正常。 (.ebextensions是基础设施相关的文件夹,它与aws elastic beanstalk有关。我试图将它部署在aws中。) –