Неразрешенные зависимости Javax и Jargs в Maven

#java #maven #dependencies

#java #maven #зависимости

Вопрос:

Я работаю над старой программой, от которой моя лаборатория отказалась в 2007 году, и я должен убедиться, что ее можно легко скомпилировать. Старый разработчик давно ушел, и нет документации о том, как его скомпилировать. Тот факт, что я никогда раньше не использовал Maven, еще больше усложняет ситуацию.

Вот что я делал до сих пор:

В каталоге проекта я запускаю:

пакет mvn

и компиляция завершается ошибкой в каталоге ‘rusa’ со следующим сообщением об ошибке:

[ИНФОРМАЦИЯ] Создание rusa 1.0-СНИМОК [ИНФОРМАЦИЯ] ———————————————————————— [ ПРЕДУПРЕЖДЕНИЕ] Отсутствует POM для de.wolfgang: jargs: jar:1.0, информация о зависимостях недоступна [ПРЕДУПРЕЖДЕНИЕ] Отсутствует POM для de.wolfgang:javax: jar: 1.0, информация о зависимостях недоступна

[ИНФОРМАЦИЯ] rusa ………………………………………. СБОЙ [0,041 с]

[ОШИБКА] Не удалось выполнить цель проекта rusa: не удалось разрешить зависимости для проекта de.wolfgang:rusa:jar:1.0-СНИМОК: Не удалось разрешить следующие артефакты: de.wolfgang:jargs:jar:1.0, de.wolfgang:javax:jar:1.0: Не удалось найти de.wolfgang:jargs:jar:1.0 вhttp://repo1.maven.org/maven2 был кэширован в локальном репозитории, разрешение не будет повторно предпринято до тех пор, пока не истечет интервал обновления центра или обновления не будут принудительными -> [Справка 1]

где ‘wolfgang’ — это имя пользователя предыдущего разработчика. Идентификатор группы ‘de.wolfgang’ определен в проекте pom.xml и под родительским тегом в rusa’s pom.xml .

Вот неисправные зависимости, определенные в rusa pom.xml:

 <dependency>
   <groupId>${project.groupId}</groupId>
   <artifactId>jargs</artifactId>
   <version>1.0</version>
 </dependency>
 <dependency>
   <groupId>${project.groupId}</groupId>
   <artifactId>javax</artifactId>
   <version>1.0</version>
 </dependency>
  

Должен ли я заменить groupId своим именем пользователя? Являются ли эти зависимости устаревшими? Нужно ли указывать, где maven может найти зависимости? Я новичок в Maven, и каждый учебник слишком сложен. Я был бы очень признателен за помощь.

Ответ №1:

Я думаю, что эти два артефакта были разработаны самим Вольфгангом. Итак, он создал их локально, это означает, что они будут установлены в локальном репозитории на его компьютере. Когда вы используете другой компьютер, вам приходится создавать его самостоятельно (путем вызова mvn install ). Итак, если у вас нет источников или, по крайней мере, jar для этих двух зависимых артефактов, вы, вероятно, не сможете создать проект.

Комментарии:

1. Хорошо, спасибо. Я считаю, что jargs относится к github.com/purcell/jargs а javax — это просто javax от oracle. Если я могу загрузить и скомпилировать их, что я могу сделать, чтобы убедиться, что maven найдет эти банки?

2. Я не уверен, являются ли это необходимыми артефактами, потому что groupId отличается. Если они правильные, вам следует подумать об изменении pom «rusa», чтобы указать на правильные зависимости. На странице, на которую вы ссылались, даже есть руководство по установке.