Добавление банки в WEB-INFlib в POM

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

5 ответов


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

<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. Подробности здесь.

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


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

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

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 вы можете ссылаться на эти банки как на регулярные зависимости. Для получения дополнительной информации о мавен Установите плагин, посмотрите на их сайт.


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

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

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

  1. Правой Кнопкой Мыши на свойства проекта.
  2. выберите - Сборке.
  3. нажать на кнопку добавить.
  4. выберите Записи Пути Сборки Java следующим образом.

enter image description here

  1. нажать на кнопку далее чтобы получить следующий мастер:
    enter image description here

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

  3. нажать на кнопку готово.

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

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


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