Прямо сейчас я никогда не копирую все зависимости в каталоге / WEB-INF / lib, потому что я не хочу следить за этим каталогом. Например, когда мне нужно запустить Tomcat, плагин m2eclipse автоматически развертывает все библиотеки и различия (то есть статические файлы, классы, файлы ресурсов и т. Д.) Во внутреннем каталоге Eclipse, и все, сервер запускается с контекстом со всеми необходимыми файлами. Я всегда использую плагины, связанные с Eclipse для удобства.
я странное поведение в процессе развертывания Tomcat, выполняемого моей Eclipse WTP. Я использую Eclipse 3.7 (Индиго), WTP 3.3,нет Плагин m2eclipse, Java 1.6, Tomcat 5.5.
Мое приложение - это веб-приложение, в котором есть некоторые другие проекты в качестве зависимостей, а также некоторые сторонние зависимости. Мой проект управляется Maven, и все работает нормально, когда мы создаем приложение с помощью этого инструмента.
Для работы над моим проектом с использованием Eclipse я запускаюmvn eclipse:clean eclipse:eclipse
а затем я импортирую свои проекты в IDE.
Моя проблема возникает, когда я хочу развернуть это веб-приложение на сервере Tomcat 5.5 (этот сервер управляется Eclipse). Когда я создаю новый сервер Tomcat и внедряюмой-проект-портал приложение в нем, он только добавляетмой-проект-ххх зависимости, а также несколько сторонних зависимостей (около 9 из сотен определенных). На рабочем столе одного из моих коллег (он использует Eclipse 3.5) сторонние зависимости вообще не развертываются, толькомой-проект-ххх 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>