2015-11-09 3 views
2

Я переписываю старый сценарий сборки проекта Spring из Ant в Maven. Проект имеет несколько модулей GWT, каждый из которых скомпилирован в JAR. Тока структура проекта состоит из нескольких модулей Maven, который более или менее так: mainProject |- AnalyzerGWT <-- this module uses GWT |- analyzer <-- this doesn't |- someOtherModule |- p4you-spring <-- this module has resources and builds WAR maven-gwt-plugin и упаковка в JAR

Каждый модуль, который использует GWT, имеет следующий код в его pom.xml (модуль называется AnalyzerGWT):

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>gwt-maven-plugin</artifactId> 
      <version>2.5.1</version> 
      <configuration> 
       <gwtSdkFirstInClasspath>true</gwtSdkFirstInClasspath> 
       <compileSourcesArtifacts> 
        <artifact>com.pamm:portal-common</artifact> 
        <artifact>com.pamm:analyzer</artifact> 
       </compileSourcesArtifacts> 
      </configuration> 
      <executions> 
       <execution> 
        <goals> 
         <goal>compile</goal> 
         <goal>test</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

Он успешно компилируется и результат GWT ресурсы сохраняются в AnalyzerGWT/цели/AnalyzerGWT-1.0/com.pamm.analyzer.gwt.Analyzer/, однако содержание этого каталога не входит в результате файл JAR ,

Есть ли элегантный способ скопировать содержимое этого каталога в корневой путь JAR?

+0

Я думаю, вы должны построить и установить эти модули GWT, а затем добавить туда зависимости в своем военном проекте. – Ajax

ответ

2

мне удалось решить эту проблему, добавив:

<plugin>  
     <artifactId>maven-resources-plugin</artifactId> 
      <version>2.5</version> 
      <executions> 
       <execution> 
        <id>copy-resources</id> 
        <phase>prepare-package</phase> 
        <goals> 
         <goal>copy-resources</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${project.build.outputDirectory}</outputDirectory> 
         <resources> 
          <resource> 
           <directory> 
            ${project.build.directory}/AnalyzerGWT-1.0/com.pamm.analyzer.gwt.Analyzer/ 
           </directory> 
           <filtering>false</filtering> 
          </resource> 
         </resources> 
        </configuration> 
       </execution> 
      </executions> 
    </plugin> 

раздел <plugins> в pom.xml.

0

файлы в этой папке, скорее всего, Javascript производится компилятором GWT, и как таковой вы, вероятно, лучше упаковку модуля в виде файла WAR вместо

<packaging>war</packaging> 

и Maven будет делать все остальное для тебя.

Приветствия,

+0

Благодарим вас за ответ. Однако это не делает трюк. Проект имеет несколько модулей, и каждый из них должен быть скомпилирован в JAR. Все эти JAR упакованы в WAR с помощью * maven-war-plugin *, определенных в отдельном модуле. Структура больше или меньше: – yuiu

+0

Мне не удалось написать это 5 минут: родительский проект: * mediaMonitor *, модули: * AnalyzerGWT *, * анализатор *, некоторые другие модули, * p4you-spring * - модуль с ресурсами, который компилирует WAR. – yuiu

+1

Как насчет военных накладок? –

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

  • Нет связанных вопросов^_^