У меня есть несколько файлов jar, которые я не получаю из каких-либо репозиториев. У меня есть эти файлы jar в папке WEB-INF\lib для каталога src. Есть ли способ добавить их как зависимости в POM без указания фактического пути файлов jar (относительный путь в порядке...)?
Добавление флага в WEB-INF\lib в POM
Ответ 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 следующим образом.
Ответ 4
Как правильно указывает Гийом, просто установите банки в свой локальный/корпоративный репозиторий.
Если это невозможно по какой-либо причине, используйте свойство ${basedir}
Ответ 5
Вы можете использовать ${project.baseuri}, чтобы получить путь к вашему проекту, а затем перейдите в каталог WEB_INF/lib. Эта страница содержит список таких свойств, которые вы можете получить в своем pom.