2010-12-10 3 views
0

Проект (стандартная WAR с пружиной) строит и пакеты штрафует из командной строки через mvn package. Я также выполнил команду mvn eclipse:eclipse, чтобы настроить проект Eclipse. Теперь вот где начинается странность.Eclipse + Maven - Отсутствует JAR в WAR export

Проект не имеет ошибок в Eclipse, и все зависимости из pom.xml правильно указаны в файле .classpath и в пути сборки проекта в Eclipse. Тем не менее, если я попытаюсь запустить проект на сервере или экспортировать проект в качестве WAR, он не будет содержать одну банку, построенную на заказ JAR.

Запись pom.xml для depency отсутствующего кувшина ...

<dependency> 
    <groupId>com.mycompany</groupId> 
    <artifactId>lib_ourlib</artifactId> 
    <version>1.0-SNAPSHOT</version> 
</dependency> 

.classpath файл проекта, показывая, что он выглядит точно так же, как и любой другой вход ...

<classpath> 
    <classpathentry kind="src" path="src/main/java" including="**/*.java"/> 
    <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/> 
    <classpathentry kind="output" path="target/classes"/> 
    <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.4/servlet-api-2.4.jar"/> 
    <classpathentry kind="var" path="M2_REPO/com/mycompany/lib_ourlib/1.0-SNAPSHOT/lib_ourlib-1.0-SNAPSHOT.jar"/> 
    <classpathentry kind="var" path="M2_REPO/log4j/log4j/1_2_6/log4j-1_2_6.jar"/> 
    <classpathentry kind="var" path="M2_REPO/org/springframework/spring-aop/3.0.5.RELEASE/spring-aop-3.0.5.RELEASE.jar"/> 
    <!-- a lot of spring jars --> 
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 
</classpath> 

Почему Eclipse забирает весенние банки, но не наши? Есть ли какое-то ограничение на использование SNAPSHOT и RELEASE?

ответ

3

Хорошо, после нескольких часов я понял это. Недостаточно добавить JAR в путь сборки. Вы также должны добавить их как зависимости J2EE в свойствах проекта в Eclipse.

0

С другой стороны, вы делаете что-то неправильно. Вам не нужен maven-eclipse-plugin вообще. Вы также должны использовать m2eclipse и m2extras. Весьма тревожно, что эти два не объединены в один сайт обновления. Поэтому установите расширение WTP из m2extras, и вы получите конфигурацию WAR Eclipse на основе POM при ее сохранении. Это золотое правило, согласно моему опыту с maven + WTP, что вы никогда не должны касаться зависимостей в eclipse, просто позвольте m2 создать его для вас. Единственный случай, когда вам нужно настроить его, - это случайные грани проекта, такие как JPA и т. Д.

+0

Я должен был упомянуть, что я преобразовал существующий проект затмения (я не знаю, имеет ли это значение). Я до сих пор довольно новичок в Maven, поэтому я, вероятно, тоже сделал что-то неправильно. Это не помогает, что я не контролирую среду разработки, которая застряла в Eclipse 3.4 и вообще без плагинов Maven. –

+0

Бедный ты. Обновите до 3.6 и используйте m2eclipse как можно скорее. –

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