2012-03-16 98 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