2010-07-06 4 views
0

У меня есть экземпляр Nexus с репозиториями Maven 2, размещенными в домене корпоративной разработки, не связанном с Интернетом. Мне нужно использовать плагин maven-jaxb-schemagen от Sun, однако он был доступен только в формате Maven 1 (наряду со многими другими зависимостями Maven 1, поэтому это не одноразовый край).Репозиторий Nexus содержит артефакт, но только делает доступным POM

Я сделал новый Maven 1 размещается в хранилище Nexus (maven1), затем сделал Maven1-к-Maven2 виртуального хранилища, а также (maven1as2). Поскольку некоторые из необходимых артефактов являются моментальными снимками, политика для maven1 (и по расширению maven1as2) is Снимок.

Я импортировал все артефакты Maven 1 через файловую систему в переопределенное местное хранилище этого репозитория.

Затем я добавил maven1as2 к моему Общественные Хранилища группы. Некоторые из ссылок, которые я нашел, говорят, что Nexus не позволит вам просматривать или искать репозиторий Maven1. У меня были смешанные результаты. Если я выбираю Общественные Хранилища или maven1as2 в Nexus, я могу пойти Обзор хранения и перейти к ком/ВС/инструменты/jxc/Maven2/Maven-JAXB-SchemaGen-плагин/1,3-ПАНОРАМА/ и просмотрите файл maven-jaxb-schemagen-plugin-1.3-SNAPSHOT.pom и его контрольную сумму. Тем не менее, я не могу просмотреть артефакт JAR, который должен быть там и находится в файловой системе.

Когда я пытаюсь использовать Maven для создания, я получаю следующее:

$ mvn clean compile 
[INFO] Scanning for projects... 
[INFO] Reactor build order: 
[INFO] MyProject 
[INFO] MyModule1 
[INFO] MyModule2 
     ... 
[INFO] --------------------------------------------------------------------------- 
[INFO] Building MyProject 
[INFO] task-segment: [clean, compile] 
[INFO] --------------------------------------------------------------------------- 
[INFO] [clean:clean {execution: default-clean}] 
[INFO] [cobertura:clean {execution: default}] 
[INFO] No goals needed for project - skipping 
[INFO] --------------------------------------------------------------------------- 
[INFO] Building MyModule1 
[INFO] task-segment: [clean, compile] 
[INFO] --------------------------------------------------------------------------- 
Downloading: http://my.nexus.server:8081/nexus/content/groups/public/com/sun/tools/jxc/maven2/maven-jaxb-schemagen-plugin/1.3-SNAPSHOT/maven-jaxb-schemagen-plugin-1.3-SNAPSHOT.pom 
6K downloaded (maven-jaxb-schemagen-plugin-1.3-SNAPSHOT.pom) 
[INFO] --------------------------------------------------------------------------- 
[ERROR] BUILD FAILURE 
[INFO] --------------------------------------------------------------------------- 
[INFO] A required plugin was not found: Plugin could not be found - check that the goal name is correct: Unable to download the artifact from any repository 

Try downloading the file manually from the project website. 

Then, install it using the command: 
    mvn install:install-file -DgroupId=com.sun.tools.jxc.maven2 -DartifactId=maven-jaxb-schemagen-plugin -Dversion=1.3-SNAPSHOT -Dpackaging=maven-plugin -Dfile=path/to/file 

Alternatively, if you host your own repository you can deploy the file there: 
    mvn deploy:deploy-file -DgroupId=com.sun.tools.jxc.maven2 -DartifactId=maven-jaxb-schemagen-plugin -Dversion=1.3-SNAPSHOT -Dpackaging=maven-plugin -Dfile=path/to/file -Durl=[url] -DrepositoryId=[id] 


    com.sun.tools.jxc.maven2:maven-jaxb-schemagen-plugin:1.3-SNAPSHOT 

from the specified remote repositories: 
    nexus (http://my.nexus.server:8081/nexus/content/groups/public) 


    com.sun.tools.jxc.maven2:maven-jaxb-schemagen-plugin:1.3-SNAPSHOT 

from the specified remote repositories: 
    nexus (http://my.nexus.server:8081/nexus/content/groups/public) 

[INFO] --------------------------------------------------------------------------- 
[INFO] For more information, run Maven with the -e switch 
[INFO] --------------------------------------------------------------------------- 
[INFO] Total time: 2 seconds 
[INFO] Finished at: Tue Jul 06 15:05:08 EDT 2010 
[INFO] Final Memory: 7M/17M 
[INFO] --------------------------------------------------------------------------- 

ответ

0

Иногда это происходит при работе с m2eclipse. Вы выбрали зависимость, а область по умолчанию - pom, а не jar. Вы не показывали свой файл pom. подтвердите, что все зависимости ограничены.

0

Я узнал, что большую часть времени восстановление метаданных репозиториев помогает решить такие проблемы. Мне досадно, как часто это необходимо.

  • Выберите хранилище
  • На вкладке «Просмотр хранилища» открыть контекстное меню корневого узла (иногда скрываются за контекстное меню по умолчанию Firefox - нажатие Esc помогает в этом случае и приносит контекст Nexus меню в поле зрения)
  • Выбор восстановления метаданных

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

Я запускаю Nexus как WAR в Glassfish 2.1

 Смежные вопросы

  • Нет связанных вопросов^_^