Отсутствует tools.jar в локальных репозиториях breaks m2eclipse
Проблема, с которой я столкнулась, заключается в том, что eclipse не может решить любую из зависимостей моего проекта. Это вызывает проблемы, потому что, несмотря на то, что зависимости, похоже, работают хорошо при кодировании (я получаю автозаполнение), я до сих пор получаю огромный список ошибок, относящихся к отсутствующим артефактам.
При фильтрации этих данных я обнаружил следующее:
Контейнер 'Maven Dependencies' ссылается на не существующую библиотеку '/home/[...]/. m2/repository/com/sun/tools/1.5.0/tools-1.5.0.jar'
Похоже, что эта зависимость была введена struts2, у которых в своем pom есть профиль, созданный следующим образом:
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.5.0</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
Эта системная панель разрешается, и поэтому я не вижу причины, по которой это может вызвать проблемы. В любом случае, есть ли способ сказать eclipse, что эта зависимость m2eclipse является системной зависимостью, которая не найдена в локальном репозитории?
Ответы
Ответ 1
Я столкнулся с одной и той же проблемой и вам нужно было сделать следующее:
- Добавлен -vm путь/в/jdk/bin в файле eclipse.ini
- Очистите существующее рабочее пространство и перезагрузите проект.
Он работал у меня без проблем.
Стоит добавить, что в моем eclipse.ini
файле мне пришлось добавить строки -vm... в верхней части файла. как
-vm
C:\Program Files\Java\jdk1.6.0_27\bin
... ... ...
Удостоверьтесь, что опция -vm помещается перед -vmargs, так как все, после того как -vmargs передается непосредственно vm и выбор конкретного зависит от опции -vm.
Ответ 2
У меня была эта проблема, но я исправил ее, используя следующие шаги:
Случай 1:
Eclipse по умолчанию указывает на JRE, но для плагина eclipse maven требуется JDK, поэтому укажите JDK
Window → Preperences → Java → Установленные JREs
изменить его на JDK
Выполните шаги, чтобы изменить JDK от JRE
- В Eclipse IDE перейдите к: Окно... Предпочтения... Установленные JREs
- Выберите стандартную JRE и нажмите "Изменить".
- Нажмите "Добавить внешнюю банку"
- Я нашел tools.jar в "C:\Program Files\Java\jdk1.6.0_22\lib" и добавил.
Теперь я могу создать свой проект без каких-либо проблем. Это правильный способ решить эту проблему?
Ответ 3
У меня была та же проблема - Eclipse не смог найти tools.jar. Как я выяснил, причина в том, что Eclipse использовал JRE, а не JDK. Вы должны добавить параметр -vm в eclipse.ini, который указан в вашем каталоге bin JDK:
...
-vm
path_to_jdk\bin
...
Это должно устранить проблему.
Ответ 4
исключает инструмент jar из зависимости struts.
<exclusions>
<exclusion>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
</exclusion>
</exclusions>
Ответ 5
Загрузить http://repository.ops4j.org/maven2/tools/tools/1.5.0/
и поставьте банку в C:\Documents and Settings\Administrador\.m2\repository\com\sun\tools\1.5.0
. Удачи.
Ответ 6
Вам нужно убедиться, что Eclipse использует установки JDK.
В Eclipse IDE перейдите к
Window
/Preferences
/Java
/Installed JREs
укажите установку JDK.
Например: C:\Program Files (x86)\Java\jdk1.6.0_37
Ответ 7
Я читал это и пробовал разные вещи. Для меня это было так: я изменил окна → настройки → java → установил JRE, чтобы вместо этого указать на JDK. Это решило эту проблему.
Ответ 8
В каждом проекте, который вы импортируете в Eclipse, Eclipse создает некоторые файлы в файловой системе -.project,.classpath, папку .settings,. Кажется, что Eclipse не обновляет их правильно.
Удалите их и импортируйте их снова.
Очевидно, что это обходное решение не будет работать, если это ваш первый импорт, и вы уже получили некоторые проблемы. Чем посмотреть здесь Maven2: Отсутствует артефакт, но банки на месте
Ответ 9
Как ни странно это звучит, я решил эту проблему, просто пересинхронизировавшись с репозиторием SVN.
Дело в том, что я взял всю рабочую область с другого ПК, поэтому, когда я импортировал проект maven с использованием плагина m2e, возможно, некоторые зависимости не синхронизировались правильно.
Я публикую это на всякий случай, если кто-то отчаянно ищет эту ошибку и пытается все возможности.
Ответ 10
У меня также была аналогичная проблема, и я исправил ее следующим образом. Перейдите в каталог lib установочного пути JDK в командной строке. Выполните следующую команду для установки для установки tools.jar.
$mvn install:install-file -DgroupId=sun.jdk -DartifactId=tools \
-Dpackaging=jar -Dversion=1.6 -Dfile=tools.jar
Ответ 11
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.6.0</version>
<scope>system</scope>
<systemPath>${env.JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
Просто добавьте это. Он будет работать.
Ответ 12
Эта зависимость должна работать должным образом. Если у вас есть сомнения, попробуйте версию Maven из командной строки, потому что плагин Eclipse очень хрупкий, когда дело доходит до разрешения зависимостей.
В отличие от других частей Eclipse, он не может создать даже частичный путь к классу для сборки, если что-то не так с POM, поэтому ошибка может быть чем-то еще.
Если все остальное не работает, попробуйте установить файл в локальный репозиторий, чтобы вы могли видеть следующую ошибку.
Ответ 13
В конце концов я нашел то, что вызывало его. По-видимому, это ошибка в m2eclipse, когда вы используете репозитории maven1. У меня все еще был репозиторий java.net maven1 в моем пом; после его отключения все работает снова. Очень неприятная проблема, чтобы отследить, потому что в конце концов это не имело никакого отношения к поиску инструментов jar.
Ответ 14
У меня была одна и та же проблема несколько раз, и я мог ее исправить следующим образом:
- Я добавил "-vm C:\\bin" в eclipse.ini или к ссылке, с которой я запускаю eclipse.
- После этой проблемы много раз, я начал подозревать, что через некоторое время (через день или около того) может быть загружен некоторый кэш m2eclipse, поэтому я попробовал странное решение: временно изменить время компьютера на следующий день и перезапуск Eclipse или закрытие/очистка проекта и... ЭТО РАБОТАЕТ!!!
Я мог бы повторить этот процесс несколько раз.
Более элегантное решение (у меня еще не было возможности попробовать его), возможно, нужно очистить тайники m2eclipse, упомянутые в fooobar.com/questions/127544/....
Надеюсь, это поможет любому.
Ответ 15
Для пользователей Mac
[1] Чтобы узнать, где находится ваша виртуальная машина, введите /USR/libexec/java _home
[2] vi./Eclipse.app/Contents/MacOS/eclipse.ini
[3]
-vm
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/
-vmargs ........ ........
[4] В Eclipse обновить Maven
[5] Sing All is Well:-)
Ответ 16
Эта проблема связана с неправильной конфигурацией java. для каждой IDE требуется полный пакет JDK. becuase tools.jar доступно внутри JDK lib not jre lib
-
перейдите к переменной пути среды изменения панели управления в C:\Program Files\Java\jdk1.8.0_31\jre\bin.
-
измените JAVA_HOME на C:\Program Files\Java\jdk1.8.0_31.
-
open IDE (eclipse или STS) сменит библиотеку JRE на C:\Program Files\Java\jdk1.8.0_31
затем перезапустите IDE. это будет работать
Ответ 17
Хакерное решение, которое сработало для меня:
Если m2e жалуется на то, что в кэше Maven не найден следующий банкомат (вы можете найти неправильный путь в журнале ошибок для файла pom или в списке "Зависимость от Java"> "Maven Dependencies"):
${HOME}/.m2/repository/jdk/tools/jdk.tools/1.6/jdk.tools-1.6.pom
затем попробуйте JAVA_VERSION_HERE
следующую команду (заполните JAVA_VERSION_HERE
для установленного JDK, например jdk1.8.0_191-amd64, затем используйте два раздела пути после .m2/repository/
above, чтобы определить правильный groupId
, и замените 1.6
любой версией m2e. о - может или не имеет значения, соответствует ли установленный JDK версии m2e):
mvn install:install-file -Dfile=/usr/java/JAVA_VERSION_HERE/lib/tools.jar \
-DgroupId=jdk.tools -DartifactId=jdk.tools -Dpackaging=jar -Dversion=1.6
Эта команда копирует tools.jar
из вашего JDK и помещает его в кеш Maven, а также создает для pom.xml
файл pom.xml
чтобы он мог использоваться Maven.