Создание проекта Maven с репозиторием Nexus OSS 3 [в автономном режиме]

#java #eclipse #maven #nexus

#java #eclipse #maven #nexus

Вопрос:

Моя проблема в том, что я не могу создать новый проект Maven после добавления моего репозитория Nexus в .m2 settings.xml .

Я установил Nexus Repositoy Manager OSS 3.0.2 в качестве своего локального репозитория Maven. У меня есть машина, которая находится в автономном режиме и не может подключиться к Интернету. Что я могу сделать, так это передать данные с онлайн-компьютера на ИТ-сервер. Таким образом, я могу развернуть все необходимые библиотеки на онлайн-компьютере и просто позже переключить папку /data.

Ошибка после создания нового проекта Maven с помощью Eclipse:

Не удалось рассчитать план сборки: плагин org.apache.maven.plugins: maven-> resources-plugin: 2.6 или не удалось разрешить одну из его зависимостей: > Не удалось прочитать дескриптор артефакта для org.apache.maven.plugins:maven-> resources-plugin: jar: 2.6

The maven-resources-plugin-2.6.jar развернут / доступен в моем репозитории Nexus: Путь org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.jar

Мой Maven settings.xml (частично):

 <mirrors>
<mirror>
  <!--This sends everything else to /public -->
  <id>nexus</id>
  <mirrorOf>*</mirrorOf>
  <url>http://localhost:8081/repository/maven-test/</url>
</mirror>
</mirrors>
...
<profile>
 <id>nexus</id>
 <repositories>
  <repository>
  <id>central</id>
  <url>http://central</url>
  <releases><enabled>true</enabled></releases>
  <snapshots><enabled>true</enabled></snapshots>
 </repository>
</repositories>
<pluginRepositories>
 <pluginRepository>
  <id>central</id>
  <url>http://central</url>
  <releases><enabled>true</enabled></releases>
  <snapshots><enabled>true</enabled></snapshots>
 </pluginRepository>
</pluginRepositories>
</profile>
...
<server>
 <id>nexus</id>
 <username>admin</username>
 <password>admin123</password>
</server>
  

Как вы можете видеть, мой репозиторий называется «maven-test». Нормально ли, что репозитории Nexus недоступны для просмотра по их URL-адресам (http://localhost:8081/repository/NAME_OF_REPO /)?

Есть ли какая-либо документация, какие библиотеки Maven являются обязательными для создания простого проекта Maven. Минимальное количество файлов .jars?

Что я пробовал до сих пор:

  • создал простой проект Maven на компьютере, подключенном к Интернету, и загрузил все необходимые библиотеки с помощью: mvn dependency:go-offline . После этого я развернул все .jars из моего локального репозитория m2 в Nexus (около 160 Jars — к счастью, я использовал сценарий оболочки для развертывания). Для автономной симуляции я удалил свой локальный репозиторий и перешел в автономный режим. Теперь ошибка возникает после создания нового проекта Maven в Eclipse.

Я использую Maven 3.3.9 — Java 1.8 — Eclipse 4.4 — Mac OS

Пожалуйста, любая помощь будет оценена! Спасибо

[Редактировать] забыл загрузить файлы .pom в Nexus. Чистая установка работала для существующего проекта. Все еще ошибка после создания нового проекта Maven

Ответ №1:

Запустите чистую установку mvn в проекте без использования инструмента nexus.

Это загрузит все необходимые jar и pom в ваш локальный репозиторий, как указано в вашем maven settings.xml

Скопируйте все эти файлы в автономную установку nexus.

Предостережение в отношении любых новых проектов, которые вы создаете каждый раз, заключается в том, что для них могут потребоваться новые jar и pom, которые не использовались в первом проекте и поэтому никогда не загружались и не копировались в вашу установку Nexus, что вызовет проблемы.

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

1. Привет — спасибо за ваш ответ. Вначале это не работает, но затем я загрузил свой репозиторий Nexus с отсутствующими .jars. Теперь чистая установка работает, но у меня все еще есть проблемы с созданием нового проекта.

2. Обновите свой вопрос с любыми новыми проблемами проекта

3. Для этого всегда требуются новые файлы .jars и .poms. Есть ли возможность получить все необходимые файлы в моем локальном репозитории и скопировать их в Nexus? Как я упоминал ранее, я уже выполнил команду go offline. Спасибо