我可以使用ant war任务导出使用Maven构建的战争吗?

时间:2012-03-16 11:09:12

标签: maven ant build

我使用eclipse和maven进行日常开发,效果很好。但是我需要一个专门的战争,当它的时间导出发送到生产,其中包括缩小和组合js / css等,分离静态资源为apache而不是tomcat等。

我尝试了maven插件路线,但这很麻烦,我宁愿在必要时编写一个简单的ant脚本来导出。我正在使用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>

1 个答案:

答案 0 :(得分: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>