Могу ли я использовать муравьиное задание для экспорта войны, построенной с Maven? - PullRequest
1 голос
/ 16 марта 2012

Я использую eclipse и maven для своей повседневной разработки, которая отлично работает. Однако мне нужно создать специализированную войну, когда пришло время экспортировать ее для отправки в производство, которая включает такие вещи, как минимизация и объединение js / css и т. Д., Выделение статических ресурсов для apache, а не для tomcat и т. Д.

Я пробовал маршрут плагина maven, но это было хлопотно, я бы предпочел написать простой ant-скрипт для экспорта при необходимости. Я использую задачу ant 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 голосов
/ 16 марта 2012

Для этого вы можете использовать задания maven ant . Я не пробовал это, но из примеров , что-то подобное должно работать ...

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...