2012-03-16 2 views
1

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

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

Я бы не рекомендовал использовать муравьиных скрипты, как это. Это не сработает, особенно если вы выпустили через Maven. Мне показалось, что вам лучше объяснять, что вам нужно делать, и как должна выглядеть ваша кампания таргетинга, и, возможно, есть идеи, как это решить на Maven. (одна мысль о том, что maven-assembly-plugin) ... – khmarbaise

ответ

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