2013-11-27 4 views
17

Я пытаюсь использовать onejar-Maven-плагин в моем pom.xml:Как заставить Sonatype Nexus обновить?

<plugin> 
    <groupId>org.dstovall</groupId> 
    <artifactId>onejar-maven-plugin</artifactId> 
    <version>1.4.4</version> 
    <executions> 
     <execution> 
      <configuration> 
       <mainClass>com.exmaple.myproj.MpPort_MpSoapPort_Client</mainClass> 
       <onejarVersion>0.97</onejarVersion> 
       <attachToBuild>true</attachToBuild> 
       <classifier>onejar</classifier> 
      </configuration> 
      <goals> 
       <goal>one-jar</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

<pluginRepositories> 
    <pluginRepository> 
     <id>onejar-maven-plugin.googlecode.com</id> 
     <url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url> 
    </pluginRepository> 
</pluginRepositories> 

, но по какой-то причине, пытаясь построить его с помощью плагина Eclipse, Maven (Maven установка) приводит к BUILD ERROR:

Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom 
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository onejar-maven-plugin.googlecode.com (http://onejar-maven-plugin.googlecode.com/svn/mavenrepo) 
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom 
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository central (http://repo1.maven.org/maven2) 
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom 
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository central (http://repo1.maven.org/maven2) 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Error building POM (may not be this project's POM). 


Project ID: org.dstovall:onejar-maven-plugin 

Reason: POM 'org.dstovall:onejar-maven-plugin' not found in repository: Unable to download the artifact from any repository 

    org.dstovall:onejar-maven-plugin:pom:1.4.4 

from the specified remote repositories: 
    Nexus (https://mynexus.example.com/nexus/content/repositories/central) 

for project org.dstovall:onejar-maven-plugin 

Так я вручную скачал onejar-maven-plugin.jar и установить его с помощью командной строки, и я, кажется, получают подобную ошибку:

C:\Users\daniel\myproj>mvn install:install-file -Dfile=onejar-maven-plugin-1.4.4.jar -DgroupId=com.jolira -DartifactId=onejar-maven-plugin -Dversion=1.4.4 -Dpackaging=jar 
[INFO] Scanning for projects... 
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom 
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository onejar-maven-plugin.googlecode.com (http://onejar-maven-plugin.googlecode.com/svn/mavenrepo) 
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom 
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository central (http://repo1.maven.org/maven2) 
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom 
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository central (http://repo1.maven.org/maven2) 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Error building POM (may not be this project's POM). 


Project ID: org.dstovall:onejar-maven-plugin 

Reason: POM 'org.dstovall:onejar-maven-plugin' not found in repository: Unable to download the artifact from any repository 

    org.dstovall:onejar-maven-plugin:pom:1.4.4 

from the specified remote repositories: 
    Nexus (https://mynexus.example.com/nexus/content/repositories/central) 

for project org.dstovall:onejar-maven-plugin 

Я понимаю, что, поскольку у нас есть зеркало Nexus, которое не содержит этого конкретного артефакта, все запутывается.

Поэтому я пробовал следовать инструкциям на How to force Sonatype Nexus Regenerate/Reindex its Metadata, но вкладка «Обзор индекса» не имеет такого контекстного меню! на нашем Sonatype Nexus.

enter image description here

Я прочитал here, что «Nexus только кэширует артефакты, которые просили клиенты. Так что вам нужно настроить Poms проект запросить соответствующие версии». Но это именно то, что я делал - без каких-либо изменений в результатах.

Как я могу выбраться из этой ситуации «курица & яйцо» и получить эту версию onejar-maven-plugin ver. 1.4.4 в мое зеркало Nexus?

(В качестве альтернативы, как я могу получить его в свой локальный кэш .m2?)

ответ

20

Вы можете заставить Maven для обновления и зависимости запроса снова, даже если локальный репо содержит метаданные о артефактах не будут доступны с -U

mvn clean install -U 

должно работать.

Также вы должны изменить свой settings.xml, чтобы указать на открытую группу, а не только на центральное репо. Подробнее можно найти in the Nexus book.

И обратите внимание, что в Центральном репозитории нет плагина onejar, который вы пытаетесь использовать. Проверьте search results и посмотреть, как groupId является com.joilira и не org.dstovall

Более того, если вы действительно хотите использовать onejar плагин из org.dstovall следует добавить URL http://onejar-maven-plugin.googlecode.com/svn/mavenrepo/ в качестве хранилища прокси для Nexus, добавить его к общественной группе а затем используйте открытую группу в вашем settings.xml

+0

Я тоже хотел предложить временно прокомментировать элемент '' в его 'settings.xml' (в качестве обходного пути, чтобы хотя бы получить пакет в его локальный' .m2' кеш), но затем заметил, что у вас было еще более блестящее понимание: его Nexus указывает на 'com.jolira', а не' com.dstoval'. +1 за это! – sfinja

+1

Его файл pom.xml, который имеет неправильную ссылку. Ничего общего с Nexus действительно .. –

+0

Но если вы посмотрите на скриншот, который он предоставил, его Nexus указывает на «nejar-maven-plugin», но это только от 'jolira', а не' dstoval'. Разве это не то, что заставляет его установку maven терпеть неудачу? – sfinja

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