2012-03-16 92 views
1

我使用eclipse和maven進行日常開發,效果很好。然而,我需要一個專門的戰爭,當它的時間出口發送到生產,其中包括縮小和組合js/css等,分離出的靜態資源爲Apache而不是tomcat等。我可以使用螞蟻戰爭任務導出使用Maven構建的戰爭嗎?

我試過maven插件路線,但這是一個麻煩,我寧願寫一個簡單的螞蟻腳本,以在必要時導出。我正在使用ant war任務,但導出的war包含除WEB-INF/libs文件夾之外的所有內容,該文件夾爲空。有沒有人知道一種方法使腳本與maven查找的所有庫一起工作?這是我有:

<?xml version="1.0" encoding="UTF-8"?> 
<project name="MyProject" default="war" basedir="."> 

    <property name="builder" value="Me" /> 
    <property name="project-name" value="${ant.project.name}" /> 
    <property name="war-file-name" value="${project-name}.war" /> 
    <property name="source-directory" value="src/main/java" /> 
    <property name="classes-directory" value="target/classes" /> 
    <property name="web-directory" value="src/main/webapp" /> 
    <property name="web-xml-file" value="src/main/webapp/WEB-INF/web.xml" /> 
    <property name="build-directory" value="/" /> 

    <tstamp prefix="build-info"> 
     <format property="current-date" pattern="d-MMMM-yyyy" locale="en" /> 
     <format property="current-time" pattern="hh:mm:ss a z" locale="en" /> 
    </tstamp> 

    <target name="war" depends=""> 
     <mkdir dir="${build-directory}" /> 
     <delete file="${build-directory}/${war-file-name}" /> 
     <war warfile="${build-directory}/${war-file-name}" webxml="${web-xml-file}"> 
      <classes dir="${classes-directory}" /> 
      <fileset dir="${web-directory}"> 
       <exclude name="WEB-INF/web.xml" /> 
      </fileset> 
      <manifest> 
       <attribute name="Built-By" value="${builder}" /> 
       <attribute name="Built-On" value="${build-info.current-date}" /> 
       <attribute name="Built-At" value="${build-info.current-time}" /> 
      </manifest> 
     </war> 
    </target> 

</project> 
+0

我不會推薦使用這樣的ant腳本。如果你通過Maven發佈的話,這將不會起作用。在我看來,更好的東西是你解釋你確實需要做什麼以及你的目標戰爭是怎麼樣的,並且可能有想法如何以Maven的方式解決這個問題。 (一個想到這個maven-assembly-plugin)... – khmarbaise 2012-03-16 11:51:57

回答

0

您可以使用maven ant tasks爲此。我還沒有嘗試過,但從the examples,這樣的事情應該工作...

<artifact:dependencies filesetId="dependency.fileset" useScope="runtime"> 
    <pom file="pom.xml"/> 
</artifact:dependencies> 
<copy todir="${webapp.output}/WEB-INF/lib"> 
    <fileset refid="dependency.fileset" /> 
    <!-- This mapper strips off all leading directory information --> 
    <mapper type="flatten" /> 
</copy> 
+0

謝謝我會在稍後嘗試 – user842800 2012-03-16 14:09:14