У меня есть экземпляр 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] ---------------------------------------------------------------------------