Построение WAR с помощью m2eclipse в сочетании с WTP (обработка webResources) - PullRequest
1 голос
/ 18 мая 2010

У меня есть ситуация, когда у меня есть веб-приложение, созданное с использованием maven (то есть maven-war-plugin). Для каждой модификации кода нам приходилось вручную запускать maven и перезапускать сервер приложений. Теперь, чтобы уменьшить накладные расходы цикла сборки, я хочу использовать WTP для публикации веб-приложения.

Теперь у нас есть обработка ресурсов с Maven, и есть несколько дополнительных задач Maven, определенных в нашем POM при создании веб-приложения. Поэтому m2eclipse кажется естественным решением.

Я зашел достаточно далеко, чтобы сборщик Maven выполнял эти задачи и правильно фильтровал ресурсы. Однако, когда я выбираю «Запустить на сервере», файл WAR выглядит не так, как если бы я его построил в Maven.

Я догадываюсь , что это потому, что на самом деле WTP создает WAR, а не построитель m2eclipse. Поэтому, даже если мы настроили подключаемый модуль maven-war-plugin в нашем POM, эти параметры не используются.

Ниже приведен фрагмент с нашей конфигурацией maven-war-plugin. То, что настроено под «webResources», не подобрано, похоже:

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1-alpha-2</version>
<configuration>
 <outputDirectory>${project.build.directory}</outputDirectory>
 <workDirectory>${project.build.directory}/work</workDirectory>
 <webappDirectory>${project.build.webappDirectory}</webappDirectory>
 <cacheFile>${project.build.webappDirectory}/webapp-cache.xml</cacheFile>
 <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
 <nonFilteredFileExtensions>
  <nonFilteredFileExtension>pdf</nonFilteredFileExtension>
  <nonFilteredFileExtension>png</nonFilteredFileExtension>
  <nonFilteredFileExtension>gif</nonFilteredFileExtension>
  <nonFilteredFileExtension>jsp</nonFilteredFileExtension>
 </nonFilteredFileExtensions>
 <webResources>
 <!-- Add generated WSDL:s and XSD:s for the web service api. -->
   <resource>
   <directory>${project.build.directory}/jaxws/wsgen/wsdl</directory>
   <targetPath>WEB-INF/wsdl</targetPath>
   <filtering>false</filtering> 
   <includes>
     <include>**/*</include>
   </includes>
 </resource>               
 </webResources>
 </configuration>

Нужно ли реконфигурировать эти ресурсы для обработки в другом месте, или есть лучшее решение?

Ответы [ 3 ]

2 голосов
/ 18 мая 2010

Чтобы заполнить ответ на свой вопрос, если кто-то столкнулся с такой же проблемой, я добавил в свой проект веб-приложения следующее:

<resource>
  <directory>${project.build.directory}/jaxws/wsgen/wsdl</directory>
  <filtering>true</filtering>
  <targetPath>${project.basedir}/src/main/webapp/WEB-INF/wsdl</targetPath>
  <includes>
    <include>**/*</include>
  </includes>
</resource>

(внутри элемента resources в build).

Работает нормально, так как мои файлы WSDL генерируются в фазе generate-resources и помещают их в target/jaxws/wsgen/wsdl. Затем они перемещаются в src/main/webapp/WEB-INF/wsdl, где сборщик WTP забирает их при создании файла WAR.

Примечание: я должен упомянуть, что у меня возникли некоторые проблемы с плагином eclipse для Maven (то есть, mvn eclipse:eclipse), потому что, очевидно, вам не разрешено иметь абсолютные пути в targetPath. Не найдено удовлетворительного решения проблемы ...

1 голос
/ 20 декабря 2011

WebResources поддерживаются в m2e-wtp 0,12 и более поздних версиях (совместимых с Eclipse Helios и Indigo).

Подробнее см. http://community.jboss.org/en/tools/blog/2011/05/03/m2eclipse-wtp-0120-new-noteworthy

1 голос
/ 18 мая 2010

Я не уверен, что (отфильтрованные) веб-ресурсы еще поддерживаются, см. MNGECLIPSE-1149 . Проблема имеет патч (и обходной путь), который может работать на вас. Также взгляните на хак из этой темы .

...