Подтвердить что ты не робот

Как включить локальные файлы 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?

4b9b3361

Ответ 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. Большинство из них легко обобщаются.


Предположения

  • Ящик был создан Maven в другом проекте со следующим...

    <groupId>com.foo</groupId>
    <artifactId>test</artifactId>
    <version>0.1.1</version>
    <packaging>jar</packaging>
    

В проекте (который хочет получить доступ к банкам)

  • Создайте каталог репо только с базового каталога проекта
  • Для доступа к каждой банке локально...
    • добавить каталоги для каждого уровня 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