2016-07-07 8 views
1

У меня есть проект eclipse, который имеет ссылку на другой проект.
Я включил этот другой проект в «Свойства» -> «Путь сборки Java» и в «Свойства» -> «Сборка развертывания» для развертывания на сервере, определенном в рабочей области eclipse.
Эта конфигурация включает банку внешнего проекта в каталоге WEB-INF/lib.Включить проект внешнего затмения в maven generated war как jar

Теперь я хочу создать военный файл с помощью команды «Запустить как» -> «Maven install» (щелкните правой кнопкой мыши).
Я добавил Maven войны-плагин плагин в ПОМ:

<plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <configuration> 
     <source>1.7</source> 
     <target>1.7</target> 
    </configuration> 
</plugin> 

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.6</version> 
    <configuration> 
     <failOnMissingWebXml>false</failOnMissingWebXml> 
     <webappDirectory>${project.build.directory}/${project.artifactId}</webappDirectory> 
     <warName>${project.artifactId}_${noVer}</warName> 
     <archive> 
      <addMavenDescriptor>false</addMavenDescriptor> 
      <manifest> 
       <addClasspath>false</addClasspath> 
      </manifest> 
      <manifestEntries/> 
      <manifestFile/> 
     </archive> 
    </configuration> 
</plugin> 

Можно ли включить другой проект в банке (автоматически) в войне?

спасибо.

EDIT

"Другой проект" затмение проекта в одном рабочем пространстве.
На самом деле это проект maven jar.
Он включен в первоначальный проект, как описано выше.
Что я хочу знать:
Есть ли способ (плагин, директива ...) включить этот проект ECLIPSE прямо в исходный проект?
что-то вроде

<dependency> 
    <groupId>org.myproject</groupId> 
    <artifactId>other_eclipse_project</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
</dependency> 

, а затем найти «other_eclipse_project.jar» в WEB-INF/Lib

+0

Я понимаю, что «другой проект» не является проектом Maven. Верный? – JimHawkins

+0

Должен быть другой проект eclipse maven – notting65

ответ

0

Я рекомендую вам установить файл баночку «другой проект» в локальном репозитории Maven. Для этого используйте плагин установки maven. Есть несколько вариантов:

  1. создать pom.xml для «другого проекта» и называют mvn install:install-file -Dfile=<path-to-file> -DpomFile=<path-to-pomfile>. В POM для «другого проекта» укажите его зависимости.
  2. указать Maven координаты в качестве параметров: mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=jar

Когда вы выбрали вариант 2, вы не можете (AFAIK) указать зависимости от «другого проекта».

Когда вы это сделаете, вы можете добавить зависимость от «другого проекта» в своем проекте maven.

Смотрите также Install non-maven artifact in local repository

1

ответ Ульриха правильно, но это только добавит банку порожденную другой проект в вашу войну. Если ваш другой проект зависит от других банок, они не будут включены.

У меня возникнет соблазн изменить другой проект на проект maven и добавить все его зависимости к его pom, таким образом вы получите все транзитивные зависимости.

+0

Согласен. Когда я написал свой ответ, мне показалось, что существует только одна внешняя библиотека («другой проект»), которая не существует как зависимость от maven. – JimHawkins

0

Возможно, вы имеете в виду, что eclipse имеет возможность получать зависимость maven напрямую от рабочей области. Этот featuare называется «Разрешение рабочей области». Откройте контекстное меню на «MyApp», а в «Maven» вы можете активировать разрешение рабочей области. В Eclipse Mars он отключен по умолчанию (AFAIK).

enter image description here