Добавление банки в 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:
- Правой Кнопкой Мыши на свойства проекта.
- выберите - Сборке.
- нажать на кнопку добавить.
- выберите Записи Пути Сборки Java следующим образом.
Как правильно указывает Гийом, просто установите банки в свой локальный/корпоративный репозиторий.
Если по какой-то причине это невозможно, используйте ${basedir}
свойства
вы можете использовать ${project.baseuri}, чтобы получить путь к вашему проекту, а затем перейти в каталог WEB_INF/lib оттуда. на этой странице имеет список таких свойств, к которым вы можете получить доступ в своем pom.