Добавление флага в WEB-INF\lib в POM - программирование
Подтвердить что ты не робот

Добавление флага в WEB-INF\lib в POM

У меня есть несколько файлов jar, которые я не получаю из каких-либо репозиториев. У меня есть эти файлы jar в папке WEB-INF\lib для каталога src. Есть ли способ добавить их как зависимости в POM без указания фактического пути файлов jar (относительный путь в порядке...)?

4b9b3361

Ответ 1

Вы можете определить зависимости следующим образом:

<dependency>
    <groupId>my.group</groupId>
    <artifactId>my.artifact</artifactId>
    <version>a.b</version>
    <scope>system</scope>
    <systemPath>${basedir}/WEB-INF/lib/my.artifact.jar</systemPath>
</dependency>

По существу вы указываете область действия как <system>, чтобы указать maven, чтобы не искать это в репозитории и <systemPath>, чтобы указать, где она находится. Это будет абсолютный путь, но может принимать свойства maven. Подробнее здесь.

Вы сделали бы это для каждой такой банки, что у вас есть.

Ответ 2

Вы должны установить эти файлы в свой локальный репозиторий. В идеале у вас есть общий репозиторий, установленный на вашем локальном компьютере или на удаленном сервере (Nexus, Artifactory, Archiva), и вы развертываете свои банки в этом репозитории.

Чтобы установить файл локально, вы можете использовать следующую команду (взятую с веб-сайта плагина установки Maven):

mvn install:install-file -Dfile=your-artifact-1.0.jar \
                     [-DpomFile=your-pom.xml] \
                     [-Dsources=src.jar] \
                     [-Djavadoc=apidocs.jar] \
                     [-DgroupId=org.some.group] \
                     [-DartifactId=your-artifact] \
                     [-Dversion=1.0] \
                     [-Dpackaging=jar] \
                     [-Dclassifier=sources] \
                     [-DgeneratePom=true] \
                     [-DcreateChecksum=true]

В вашем pom вы можете ссылаться на эти банки как на обычные зависимости. Для получения дополнительной информации о Maven Install Plugin, посмотрите на веб-сайт.

Ответ 3

Использование Плагин зависимостей Apache Maven

  • mvn dependency:copy-dependencies, и вы найдете папку target/dependencies, заполненную всеми зависимостями, в том числе транзитивными.
  • при загрузке зависимостей сталкиваются с проблемами, используйте mvn dependency:purge-local-repository и повторите попытку.

Использование eclipse:

  • Щелкните правой кнопкой мыши Свойства проекта.
  • Выберите опцию Развертывание развертывания.
  • Нажмите кнопку Добавить.
  • Выберите Записи пути сборки Java следующим образом.

введите описание изображения здесь

  1. Нажмите Далее, чтобы получить следующий мастер:
    введите описание изображения здесь

  2. Выберите Зависимости Maven.

  3. Нажмите завершить.

Ответ 4

Как правильно указывает Гийом, просто установите банки в свой локальный/корпоративный репозиторий.

Если это невозможно по какой-либо причине, используйте свойство ${basedir}

Ответ 5

Вы можете использовать ${project.baseuri}, чтобы получить путь к вашему проекту, а затем перейдите в каталог WEB_INF/lib. Эта страница содержит список таких свойств, которые вы можете получить в своем pom.