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