Зависимость для WebProject в Maven - PullRequest
1 голос
/ 03 февраля 2011

я хочу создать веб-проект (война) .. который будет зависеть от других jar (проект java)

Как только я создаю свою войну, он должен автоматически собрать java-проект для jar и добавить его в свой локальный репозиторий.

Кто-нибудь может помочь?

Ответы [ 4 ]

3 голосов
/ 03 февраля 2011

у вас может быть мультимодульный проект maven .. надеюсь, это то, что вы ищете .. как показано ниже

  <modules>
    <module>example-jar</module>
  </modules>

проверьте это: multimodule-web-spring-sect-simple-родитель

2 голосов
/ 03 февраля 2011

Да. Конечно, вы можете, и это, вероятно, самый распространенный вариант использования. У большинства веб-проектов есть общая библиотека, которая содержит служебный код, который используется другими проектами.

Есть два способа сделать это:

  1. Создайте родительский проект, под которым создайте свой веб-проект и другой проект на том же уровне. В вашем веб-проекте добавьте Jar-проект в качестве зависимости. Теперь, когда вы будете собирать родительский проект, используя mvn clean install, оба ваших проекта будут собраны и установлены в вашем локальном репозитории.

    parent
      +------- pom.xml (has two modules webProject and jarProject)
      +------- webProject
      |          + pom.xml (depends on jarProject)
      +------- jarProject
                 + pom.xml
    
  2. Есть и другой способ, используя Maven reactor plug-in, этот плагин позволяет вам строить все связанные проекты в проекте. Вы можете увидеть детали здесь . В частности, reactor:make-dependents

1 голос
/ 03 февраля 2011

Если ваш jar-проект и war-проект следуют одному и тому же циклу выпуска, было бы неплохо создать общего родительского pom и сделать модули 2 проектов этого родительского.

Затем вы можете собрать из родительского каталога, и реактор Maven всегда будет гарантировать, что проект jar будет построен первым.

Если они не следуют одному и тому же циклу выпуска, тогда вы, вероятно, простоубедитесь, что вы вручную строите их в правильном порядке.

При запуске этих сборок в Hudson плагин maven может обеспечить запуск сборки нижестоящего проекта после завершения вышестоящего проекта.

1 голос
/ 03 февраля 2011

Это не совсем имеет смысла.Если WAR зависит от JAR, то JAR необходимо построить и добавить в локальный репозиторий до построения WAR (а не после того, как вы написали в своем вопросе).(Это должно быть сделано в таком порядке, чтобы файл JAR мог быть включен в файл WAR.)

Предполагая, что вы действительно имеете в виду, что JAR должен быть собран first , этолегко.Просто создайте родительский модуль с дочерними модулями для JAR и WAR и объявите, что модуль WAR зависит от модуля JAR.Затем создайте родительский модуль.

Я рекомендую вам уделить время прочтению главы Многомодульные проекты «Maven by Example» и соответствующей документации на сайте Maven.

...