我正在將Maven 1項目遷移到Maven 3.該作業幾乎完成了一項缺少的任務,我需要的是從pom文件獲取所有依賴項名稱並將它們寫入一個配置文件作爲一個字符串,作業在maven.xml中完成,如下所示:檢查最後5行,將名稱寫入名爲wrapper.conf的文件。將一個ant腳本遷移到Maven3
如何使用Maven3實現此目標?是否有一個maven插件,我可以用這個或我需要在我的pom.xml中使用ant腳本?
<goal name="service">
<mkdir dir="${maven.build.dir}/grid" />
<ant:copy todir="${maven.build.dir}/grid">
<fileset dir="resources/javaservicewrapper" />
</ant:copy>
<j:forEach var="lib" items="${pom.artifacts}">
<j:set var="dep" value="${lib.dependency}"/>
<j:if test="${dep.getProperty('service.bundle')=='true'}">
<ant:copy failonerror="true" todir="${maven.build.dir}/grid/lib">
<fileset dir="${maven.repo.local}/${dep.groupId}/jars">
<include name="${dep.artifactId}-${dep.version}.${dep.type}"/>
<j:set var="SERVCP" value="../lib/${dep.artifactId}-${dep.version}.${dep.type}:${SERVCP}" />
</fileset>
</ant:copy>
</j:if>
</j:forEach>
<attainGoal name="jar" />
<ant:copy file="target/${maven.final.name}.jar" tofile="${maven.build.dir}/grid/lib/grid.jar" />
<j:set var="SERVCP" value="${SERVCP}../lib/gridcache.jar" />
<ant:copy todir="${maven.build.dir}/gridcache/conf" file="resources/javaservicewrapper/conf/wrapper.conf" overwrite="true">
<filterset begintoken="@" endtoken="@">
<filter token="service.classpath" value="${SERVCP}"/>
</filterset>
</ant:copy>
</goal>
編輯:使用編譯類路徑的解決方案運作良好,但我不得不特定於使用Javaservicewrapper其他問題。所以,我發現最好的解決辦法是創造全由appassembler - Maven的插件腳本/ config文件,讓Maven的組裝插件將其複製到conf文件夾
tnx我有我只需要配置文件覆蓋wrapper.java.classpath.1變量,並從我的lib文件夾中添加jar路徑 – Spring
還應該使用它嗎?或者你認爲更好的解決方案? – Spring
我會建議使用,如果你可以,因爲它使得maven構建更簡單。只需[詳細查看文檔](http://mojo.codehaus.org/appassembler/appassembler-maven-plugin/usage-jsw.html)。 – khmarbaise