У меня странное поведение в процессе развертывания Tomcat, выполняемого моей Eclipse WTP.Я использую Eclipse 3.7 (Indigo), WTP 3.3, no m2eclipse plugin, Java 1.6, Tomcat 5.5.
Мое приложение - это веб-приложение, которое также имеет в качестве зависимостей некоторые другие проекты.как некоторые сторонние зависимости.Мой проект управляется Maven, и все работает нормально, когда мы создаем приложение с помощью этого инструмента.
Для работы над моим проектом с использованием Eclipse я запускаю mvn eclipse:clean eclipse:eclipse
, а затем импортирую свои проекты в IDE.
Моя проблема возникает, когда я хочу развернуть это веб-приложение на сервере Tomcat 5.5 (этот сервер управляется Eclipse).Когда я создаю новый сервер Tomcat и развертываю на нем мое приложение my-project-portal , оно добавляет только зависимости my-project-xxx , а также несколько сторонних разработчиков.зависимости (около 9 из сотен определены).На рабочем столе одного из моих коллег (он использует Eclipse 3.5) сторонние зависимости вообще не развертываются, только my-project-xxx JAR ...
Однако, когдаЯ просматриваю свойства проекта веб-приложения: в Путь сборки Java> Библиотеки или в «Сборке развертывания» список зависимостей правильный и полный.
Примечания
Я провел несколько тестов со старым Eclipse (3.3, с WTP 3.1), и у меня не возникло проблем с развертыванием.Однако этот WTP все еще использовал «Зависимости модулей Java EE», что не относится к последней версии WTP.
До сих пор мы использовали собственный плагин Maven после mvn eclipse:eclipse
, который копирует всезависимости (в том числе переходные) в my-webapp-project/WebContent/WEB-INF/lib
.В результате Eclipse автоматически развернул содержимое этих зависимостей, и, таким образом, мы получили все зависимости на сервере Tomcat.
Вопросы
- Что не такс моим процессом?
- Действительно ли мне нужно скопировать все зависимости в каталоге
WEB-INF/lib
? - Что такое обычная процедура, когда мы хотим развернуть вебприложение на сервере Tomcat, использующее Eclipse?
Вот выдержка из моих файлов конфигурации Eclipse после запуска mvn eclipse:eclipse
:
.classpath
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" sourcepath="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/asm/asm/2.2.2/asm-2.2.2.jar" sourcepath="M2_REPO/asm/asm/2.2.2/asm-2.2.2-sources.jar"/>
<classpathentry kind="src" path="/my-project-business"/>
...
<classpathentry kind="output" path="WebContent/WEB-INF/classes"/>
</classpath>
.settings / org.eclipse.wst.common.component
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="my-project-portal">
<property name="context-root" value="my-project-portal"/>
<wb-resource deploy-path="/" source-path="/WebContent"/>
<property name="java-output-path" value="/WebContent/WEB-INF/classes"/>
<dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar">
<dependency-type>uses</dependency-type>
</dependent-module>
...
<dependent-module deploy-path="/WEB-INF/lib" handle="module:/resource/my-project-business/my-project-business">
<dependency-type>uses</dependency-type>
</dependent-module>
<wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/resources"/>
</wb-module>
</project-modules>