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

Отсутствует 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 является системной зависимостью, которая не найдена в локальном репозитории?

4b9b3361

Ответ 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

  1. В Eclipse IDE перейдите к: Окно... Предпочтения... Установленные JREs
  2. Выберите стандартную JRE и нажмите "Изменить".
  3. Нажмите "Добавить внешнюю банку"
  4. Я нашел 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>

Ответ 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

  1. перейдите к переменной пути среды изменения панели управления в C:\Program Files\Java\jdk1.8.0_31\jre\bin.

  2. измените JAVA_HOME на C:\Program Files\Java\jdk1.8.0_31.

  3. 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.