Eclipse + Maven + Dynamic Web Project -> Maven перезаписывает сборку развертывания
Резюме
В Eclipse, когда я "Maven-> Обновить конфигурацию проекта", "Maven Dependencies" удаляется из "Deployment Assembly" моего проекта.
подробности
Я начал с предварительно настроенного проекта Eclipse: Файл-> Создать-> Динамический веб-проект-> Проект JavaServer Face v2.0. Чтобы удалить «магию», я затем преобразовал ее в проект Maven: Configure-> Convert to Maven project.
pom.xml содержит следующее:
<build>
<finalName>jsf-facelets-tutorial</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webXml>WebContent/WEB-INF/web.xml</webXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-api</artifactId>
<version>2.0.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-impl</artifactId>
<version>2.0.5</version>
<scope>runtime</scope>
</dependency>
</dependencies>
Затем, чтобы убедиться, что зависимости Maven скопированы в «WEB-INF / lib /» перед развертыванием, я добавил их в «Сборку развертывания» проекта: Свойства проекта-> Сборка развертывания. Для более подробной информации смотрите этот вопрос:Eclipse + Maven + JavaServer Faces -> ClassNotFoundException: StartupServletContextListener.
Я знаю, есть две проблемы.
Проблемы
(1) Когда я "Проект-> Maven-> Обновить конфигурацию проекта", "Maven Dependencies" удаляется из моей "Сборки развертывания". Есть ли способ предотвратить это, возможно, с помощью какого-нибудь плагина Maven?
(2) Когда я собираю .war из Eclipse, все в порядке, .war хорошо работает в Tomcat. Но когда я собираю его из командной строки с Maven,mvn clean compile war:war
файлы .html из "WebContent /" не добавляются в .war. Опять же, какие настройки / плагины Maven мне нужно исправить?
К вашему сведению, это очень простое приложение ... просто страница входа и страница приветствия.
Если есть какие-либо дополнительные сведения, которые я должен предоставить (web.xml ,face-config-xml, login.xhtml), дайте мне знать, и я добавлю их.
Спасибо
--РЕДАКТИРОВАТЬ--
Версия Eclipse: 3.6.2
Eclipse m2e версия: 1.0.1
Apache Maven версия: 2.2.1
(1) Решение
Обновлен до Eclipse Java EE 3.7.2 (Индиго). Теперь также с помощьюm2e-wtp Maven Integration для подключаемого модуля Eclipse WTP
(2) Решение
Создан новый проект Maven изобразец, затем Eclipse-> Import-> Existing Maven Project. С новой версией Eclipse и m2e-wtp перспектива Java EE в Eclipse хорошо работает со стандартной структурой каталогов Maven.
Pom.xml теперь тоже проще:
<build>
<finalName>jsf-facelets-tutorial</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-api</artifactId>
<version>2.0.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-impl</artifactId>
<version>2.0.5</version>
<scope>runtime</scope>
</dependency>
</dependencies>