2013-08-03 3 views
0

У меня есть веб-приложение Java. Я развертываю это как войну с использованием файла ant на сервере Tomcat. Я мог бы это сделать успешно. Пожалуйста, найдите ниже build.xml Теперь проблема заключается в том, что у меня есть 100000 изображений в моем приложении под веб-папкой, которая копируется в военную корневую папку.Как пропускать изображения при развертывании войны с tomcat

Если я создаю войну с 100000 изображениями в корневой папке военного файла, это будет большая головная боль.

Каждый раз, когда я что-либо изменяю в JSP или java-коде, новая война снова копирует эти 100 000 изображений в папке войны, которая занимает более 1 часа, чтобы построить файл войны.

Как я могу убедиться, что моя папка изображений в войне не будет копироваться снова и снова при каждом развертывании?

<!-- setting classpath --> 


<path id="base.class.path"> 
    <pathelement location="lib/joda-time-1.6.1.jar" /> 
    <pathelement location="lib/fedExTrackingWebService.jar" /> 
    .... 
    ..... 
</path> 

<property file="build.properties"/> 

    <path id="classpath"> 
     <fileset dir="${lib.dir}"/> 
    </path> 

    <target name="clean"> 
     <echo>Cleaning the ${build.dir}</echo> 
     <delete dir="${build.dir}"/> 
     <delete dir="${dist.dir}"/> 
    </target> 

    <target name="init" depends="clean"> 
     <echo>Creating the build directory</echo> 
     <mkdir dir="${build.dir}/WEB-INF/classes"/> 
     <mkdir dir="${build.dir}/WEB-INF/lib"/> 
     <mkdir dir="${dist.dir}"/> 
    </target> 

    <target name="compile" depends="init"> 
     <echo>Compile the source files</echo> 
     <javac srcdir="${src.dir}" destdir="${build.dir}/WEB-INF/classes"> 
      <classpath refid="base.class.path"/>     
     </javac> 
    </target> 

    <target name="copy" depends="compile"> 
     <copy todir="${build.dir}/WEB-INF"> 
      <fileset dir="${web.dir.webinf}/WEB-INF"/> 
     </copy> 
     <copy todir="${build.dir}"> 
      <fileset dir="${web.dir}"/> 
     </copy> 
     <copy todir="${build.dir}/WEB-INF/lib"> 
      <fileset dir="${lib.dir}"> 
          </fileset> 
     </copy> 
    </target> 


    <target name="war"> 
     <echo>Building the war file</echo> 
     <war destfile="${dist.dir}/${ant.project.name}.war" webxml="${build.dir}/WEB-INF/web.xml"> 
      <fileset dir="${build.dir}"/> 
     </war> 
    </target> 

    <target name="deploy_local" depends="war"> 
     <echo>Deploying .war to local Tomcat</echo> 
     <copy todir="${tomcat.dir}/webapps"> 
      <fileset dir="${dist.dir}"> 
       <include name="${ant.project.name}.war"/> 
      </fileset> 
     </copy> 
    </target> 

+0

Не могли бы вы быть более конкретными? Как вы создаете файл войны? maven war plugin, ant war task, jar -cf и т. д.? – lifus

+0

Его муравьиная задача - найдите файл сборки. Я развертываю войну с помощью муравья. – Gaurav

+0

Вы можете попробовать добавить 'update =" true "' в свою задачу 'war'. – lifus

ответ

1

Вы можете попытаться изменить военный файл пошагово:

<target name="war" update="true"> 

Вы можете предварительно включить изображения в файл войны, а затем исключить их из набора файлов в задаче копирования.

например:

<target name="copy" depends="compile"> 
    <copy todir="${build.dir}"> 
     <fileset dir="${web.dir}"> 
      <exclude name="images/**"/> 
     </fileset> 
    </copy> 

Вы можете также рассмотреть добавить duplicate="preserve" к муравей войны задачи. Он не думает, что это напрямую связано с вами, но все же.

Но согласно manual:

Пожалуйста, обратите внимание, что формат Zip позволяет использовать несколько файлов одного и того же полностью квалифицированное имя существовать в одном архиве. Это было , задокументированное как вызывающее различные проблемы для ничего не подозревающих пользователей. Если вы хотите избежать этого поведения, вы должны установить атрибут duplicate в значение , отличное от его значения по умолчанию, «добавить».

А также вот blog post.

+0

В моем index.jsp есть оператор Gaurav

+0

Не волнуйся. [Вот как должен выглядеть ваш файл войны] (http://documentation.progress.com/output/Iona/orbix/6.1/tutorials/fnb/dev_intro/images/j2ee_overviewa6.gif). – lifus

+0

Это очень старый проект с тысячами JSP. Я не могу изменить путь изображения. он работает так: «images/frontpage/emoges/rbdi_revolution.jpg», но не работает с этим - «/images/frontpage/emoges/rbdi_revolution.jpg». И у всех JSP есть такая ссылка: «/images/frontpage/emoges/rbdi_revolution.jpg» Так что мне делать? – Gaurav

Смежные вопросы