试图排除文件夹的ant war插件

时间:2016-01-30 23:32:46

标签: maven ant war maven-antrun-plugin

您好我正在使用ant war插件并尝试从战争中排除文件夹。但这并没有被排除在外。

这是结构

   XYZ
      src
         main
             webapp
                   web-inf
                         web.xml
                   common
                         api
                            a.js
                            b.js

我对target = production的build.xml看起来像这样,我试图排除常见文件夹。但是我发现它根本没有排除它

<target name="production" depends="moveresources"
        description="Building the Production Directory Content">
    <echo message="Creating -> ${workingDirectory}"/>
    <war destfile="${workingDirectory}/horizonadmin.war" webxml="${srcDirectory}/WEB-INF/web.xml">
        <fileset dir="${webappsrc}"/>
        <lib dir="${srcDirectory}/WEB-INF/lib"/>
        <classes dir="${srcDirectory}/WEB-INF/classes"/>
        <exclude name="common/api/*.js/>
    </war>
    <echo message="Done Creating -> ${workingDirectory}"/>
</target>

在我的pom.xml中,我将文件夹引用为

<plugin>
  <artifactId>maven-antrun-plugin</artifactId>
  <executions>
    <execution>
      <id>production</id>
      <phase>package</phase>
      <goals>
        <goal>run</goal>
      </goals>
      <configuration>
        <target>
          <property name="unpackfolder" value="${unpack.folder}"/>
          <property name="webappsrc" value="src/main/webapp"/>
          <property name="srcDirectory" value="${project.basedir}/target"/>
          <property name="workingDirectory" value="${PUBLISH_DIR}/production"/> 
          <ant antfile="${project.basedir}/build.xml" target="production"/>
        </target>
      </configuration>
    </execution>

如何在war文件中排除这些js文件?用于生产模式。我打算排除这些js文件并包含一个缩小的js文件。任何指针

2 个答案:

答案 0 :(得分:1)

<exclude>

中加入<fileset>
<fileset dir="${webappsrc}">
    <exclude name="common/api/*.js" />
</fileset>

答案 1 :(得分:0)

当您使用exclude属性时,直接在任务中添加的fileset未嵌套到其中一个fileset中,适用于隐式basedir任务表单。没有任何basedir它不会做任何事情。这可能不会在war文档中提及,而是在链接的jar页面内提及。

您必须将exclude放在fileset内,该lib会提取您不想要的文件。 classesfilesetzipfileset个不同的名称(它们实际上只有prefix个带有硬编码的<widget android-packageName="" 属性。)