Maven: Как включить в Eclipse файлы jar, которых нет в репозитории? - PullRequest
12 голосов
/ 06 октября 2011

Я скопировал файлы JAR в src\main\webapp\WEB-INF\lib.
Я использую затмение. Если я добавляю jar-файлы один за другим в Project-> Java Build Path-> Add jars, то я делаю Project-> Maven-> Обновить конфигурацию проекта, они удаляются Maven. И Eclipse показывает ошибки, которые содержат «xxx не может быть решен».

Env:
Eclipse Java EE IDE for Web Developers.
Version: Indigo Service Release 1
Build id: 20110916-0149

m2e - Maven Integration for Eclipse 1.0.100.20110804-1717

Примечание: я не хочу создавать свой собственный репозиторий Maven. Он будет использован только один раз.
Как мне поступить?

Ответы [ 4 ]

18 голосов
/ 06 октября 2011

Не все библиотеки можно найти в общедоступном репозитории Maven, например, ваши собственные библиотеки или собственные библиотеки.В любом случае, сначала вы можете поискать в репозитории Maven , может быть, некоторые из них там есть.

Если их действительно нет, и вы не хотите устанавливать Nexus или Artifactory , вы можете выбрать один из этих двух подходов:

  • установить банки в вашем локальном кэше репозитория, не нужно создавать специальный репозиторий.См. Инструкции для mkyong .

  • другой подход заключается в использовании системных зависимостей, вы просто указываете путь к Jar в файловой системе.Это менее рекомендуемый подход, но если вы действительно хотите, он будет работать.Вот официальная документация .

2 голосов
/ 03 декабря 2011

Добавьте это Зависимость систем .


В случае, если вы хотите добавить это (это использует jquantlib в качестве примера) к локальному репо maven:

mvn install:install-file -Dfile=./jquantlib-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib -Dversion=0.2.4 -Dpackaging=jar

Для этого я использую командный файл

@echo off

cd lib

CMD /C "mvn install:install-file -Dfile=./jquantlib-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib -Dversion=0.2.4 -Dpackaging=jar"
CMD /C "mvn install:install-file -Dfile=./jquantlib-helpers-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib-helpers -Dversion=0.2.4 -Dpackaging=jar"
CMD /C "mvn install:install-file -Dfile=./jquantlib-samples-0.2.4-ubber.jar -DgroupId=org.jquantlib -DartifactId=jquantlib-ubber -Dversion=0.2.4 -Dpackaging=jar"
CMD /C "mvn install:install-file -Dfile=./jquantlib-samples-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib-samples -Dversion=0.2.4 -Dpackaging=jar"

CMD /C "mvn install:install-file -Dfile=./ta-lib-0.4.0.jar -DgroupId=com.tictactec -DartifactId=ta-lib -Dversion=0.4.0 -Dpackaging=jar"

Вы можете использовать аналогичный файл сценария в других системах.

0 голосов
/ 11 апреля 2016

Чтобы добавить внешние файлы JAR, отсутствующие в локальном репозитории, просто щелкните правой кнопкой мыши на вашей основной исходной папке и в меню пути сборки выберите: «настроить путь сборки», затем перейдите на вкладку библиотек и нажмите «добавить внешние файлы JAR».затем найдите файл JAR (или zip), который вы хотите добавить в качестве библиотеки, и нажмите кнопку ОК.

Поздравляем, вы успешно добавили внешний JAR (или zip) в путь сборки и теперь можетеимпортировать любые классы из этого JAR-файла в ваш проект, не выдавая ошибку Picture How-To :) http://hostthenpost.org/uploads/541be8420657320c74489ff8d456ad08.png

0 голосов
/ 03 декабря 2011

Я полагаю, что системный подход к зависимости не должен использоваться, если у вас нет другого выбора, и это потому, что вы теряете здесь всю «портативность сборки». Конечно, вы можете хранить ваши jar-файлы в вашей системе управления версиями вместе с исходными файлами вашего проекта, но я не думаю, что это тоже хороший подход ...

Использование только install: install-file не достаточно хорош - это действительно развернет файлы jar в правильном формате в вашем локальном хранилище, но что произойдет, когда вы перейдете на другой компьютер и начнете создавать свой проект там? Вам нужно будет сделать это еще раз.

Итак, если вы не хотите устанавливать nexus / artifactory (что, я считаю, является лучшим решением), вам, вероятно, следует создать другое хранилище (только в файловой системе на некоторых ваших серверах) и развернуть jars там (вы можете использовать mvn install: install-file, как было предложено здесь, а затем просто скопируйте все дерево). Теперь вы можете настроить веб-сервер Apache и получить доступ к каталогу со всеми вашими банками через http. Я не верю, что это лучше, чем подход nexus / artifactory, но это может быть немного проще, если вы знакомы с веб-сервером apache. Чтобы ваш maven знал об этом новом хранилище, вам нужно отредактировать файл% MAVEN_HOME% \ conf \ settings.xml

...