Как включить локальные файлы jar в проект Maven
Я не хочу устанавливать несколько банок в репозиторий Maven (как локальный, так и удаленный). В частности, у меня есть несколько файлов jar, расположенных в
c:\work\projects\myapp\src\main\webapp\WEB-INF\lib\test.jar
c:\work\projects\myapp\src\main\webapp\WEB-INF\lib\test2.jar
Как включить их в мой проект при открытии/редактировании с помощью NetBeans?
Ответы
Ответ 1
Рассматривали ли вы добавление этих двух JAR как system
зависимостей? например.
<project>
...
<dependencies>
<dependency>
<groupId>sun.jdk</groupId>
<artifactId>tools</artifactId>
<version>1.5.0</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
</dependencies>
...
</project>
Просто примечание, это НЕ рекомендуется и должно использоваться очень экономно, если когда-либо.
Ответ 2
Хотя он работает для использования ссылки systemPath, лучше создать локальный репозиторий. И, к счастью, это легко сделать.
Создание локального хранилища, в котором хранятся банки, недоступные в открытом репозитории
ПРИМЕЧАНИЕ. Я использую Eclipse, поэтому некоторые из инструкций относятся к Eclipse. Большинство из них легко обобщаются.
Предположения
В проекте (который хочет получить доступ к банкам)
- Создайте каталог репо только с базового каталога проекта
- Для доступа к каждой банке локально...
- добавить каталоги для каждого уровня groupID (например./repo /com/foo)
- добавить имя jar (aka artifactId) без версии (например./repo/com/foo /test)
- добавить каталог для версии jar (например,/repo/com/foo/test /0.1.1)
- поместите банку в этот каталог (например,/repo/com/foo/test/0.1.1bbb//test-0.1.1.jar)
В pom.xml(для проекта, который хочет получить доступ к банкам)
-
Определите локальный репозиторий
<repositories>
<repository>
<id>data-local</id>
<name>data</name>
<url>file://${project.basedir}/repo</url>
</repository>
</repositories>
-
Добавьте зависимость от локальной банки. Из нашего примера выше это будет...
<dependency>
<groupId>com.foo</groupId>
<artifactId>test</artifactId>
<version>0.1.1</version>
</dependency>
Перестроить
- Rt нажмите pom.xml → Запустить как → Maven build
Ответ 3
Раньше я делал это, создавая в дереве каталогов локальное дерево репозитория и ссылаясь на него в POM, объявляя локальный репозиторий с относительным путем проекта.
Но это взломать. (Может быть, не так хаки - за комментарий @Pascal. Я все еще немного новичок Maven, несмотря на то, что использовал его в течение года или около того.)
Ответ 4
Ни один из других ответов не работал у меня. Мне пришлось запустить немного другую команду...
mvn deploy:deploy-file -Durl=file:///path/to/yourproject/repo/ -Dfile=mylib-1.0.jar -DgroupId=com.example -DartifactId=mylib -Dpackaging=jar -Dversion=1.0
См. полные шаги в этой статье: https://devcenter.heroku.com/articles/local-maven-dependencies