2

を使用してAntプロジェクトを生成するとmvn ant:ant、生成されたAntプロジェクトは、プロパティトークンを置き換えるためにリソースをフィルタリングしません(例${property})。そうする簡単な方法はありますか?

4

1 に答える 1

2

antプラグインは、POMに基づいて次のファイルを生成します。

|-- build.xml
|-- maven-build.properties
|-- maven-build.xml

リソースフィルタリングは「コンパイル」ターゲット内で行われるため、ターゲットをbuild.xmlにコピーしてその動作を変更することで、その動作をオーバーライドできます。

Maven ANTプラグインを再度実行しても、このカスタマイズは上書きされません(maven- *ファイルのみが再生成されます)。

build.xml

フィルタセットは、コンパイルターゲット内のコピータスクに追加されます。

<project name="maven-ant-demo" default="package" basedir=".">

  <!-- ====================================================================== -->
  <!-- Import maven-build.xml into the current project                        -->
  <!-- ====================================================================== -->

  <import file="maven-build.xml"/>

  <!-- ====================================================================== -->
  <!-- Help target                                                            -->
  <!-- ====================================================================== -->

  <target name="help">
    <echo message="Please run: $ant -projecthelp"/>
  </target>

  <!-- ====================================================================== -->
  <!-- Override target                                                        -->
  <!-- Copied from "maven-build.xml"                                          -->
  <!-- ====================================================================== -->    
  <target name="compile" depends="get-deps" description="Compile the code">
    <mkdir dir="${maven.build.outputDir}"/>
    <javac destdir="${maven.build.outputDir}" 
           nowarn="false" 
           debug="true" 
           optimize="false" 
           deprecation="true" 
           target="1.1" 
           verbose="false" 
           fork="false" 
           source="1.3">
      <src>
        <pathelement location="${maven.build.srcDir.0}"/>
      </src>
      <classpath refid="build.classpath"/>
    </javac>

    <!--
    Note the filterset. This will perform resource filtering 
    -->
    <copy todir="${maven.build.outputDir}">
      <fileset dir="${maven.build.resourceDir.0}"/>
       <filterset begintoken="${" endtoken="}">
         <filter token="helloworld" value="${helloworld}"/>
       </filterset>
    </copy>
  </target>

</project>
于 2012-08-30T01:09:02.107 に答える