2012-06-25 5 views
6

Wenn ich versions:use-releases mein Release-Repository zu verwenden versuchen, wird als „deaktiviert“ markiert, was bedeutet, die Snapshot-Abhängigkeiten nicht zu Releases gelöst bekommen. Ich verstehe nicht, warum das Repository als deaktiviert betrachtet wird. HierMaven Versionen Plug-in-Skipping Update Check

ist die abgekürzte Debug-Ausgabe aus dem Build:

[DEBUG] (f) remoteArtifactRepositories = [  id: snapshots 
     url: http://maven.live.hostname.net/content/repositories/snapshots/ 
    layout: default 
snapshots: [enabled => true, update => daily] 
releases: [enabled => true, update => daily] 
,  id: company-nexus 
     url: http://maven.live.hostname.net/content/groups/public/ 
    layout: default 
snapshots: [enabled => false, update => daily] 
releases: [enabled => true, update => daily] 
] 
[...] 
[DEBUG] Looking for a release of promotion-test-central:promotion-test-central:jar:1.6.0-SNAPSHOT 
[INFO] artifact promotion-test-central:promotion-test-central: checking for updates from snapshots 
[DEBUG] Reading resolution-state from: /home/tester/.m2/repository/promotion-test-central/promotion-test-central/resolver-status.properties 
[DEBUG] Writing resolution-state to: /home/tester/.m2/repository/promotion-test-central/promotion-test-central/resolver-status.properties 
[DEBUG] Skipping update check for artifact promotion-test-central:promotion-test-central (/home/tester/.m2/repository/promotion-test-central/promotion-test-central/maven-metadata-company-nexus.xml) from disabled repository company-nexus (http://hostname/content/groups/public/) 

Ich betreiben eine Einrichtung, die Anforderungen an central zu unserer Nexus Instanz spiegelt, und gibt auch eine globale Snapshot-Repository zu:

<mirrors> 
     <mirror> 
      <id>mendeley-nexus</id> 
      <mirrorOf>central</mirrorOf> 
      <url>http://maven.live.chonp.net/content/groups/public/</url> 
     </mirror> 
    </mirrors> 
    <profiles> 
     <profile> 
      <id>default</id> 
      <repositories> 
       <repository> 
        <id>snapshots</id> 
        <url>http://maven.live.chonp.net/content/repositories/snapshots/</url> 
        <snapshots> 
         <enabled>true</enabled> 
        </snapshots> 
       </repository> 
      </repositories> 
     </profile> 
    </profiles> 
    <activeProfiles> 
     <activeProfile>default</activeProfile> 
    </activeProfiles> 

Es gibt eine Release- und eine Snapshot-Version der fraglichen Abhängigkeit, und das Repository funktioniert in jeder anderen Hinsicht genauso wie erwartet.

+0

@ZnArK - Wie man die XML-Syntax-Hervorhebung macht? –

+0

für xml benötigen Sie den Kommentar hinzufügen '<- Sprache: lang-xml -> SO verwendet prettify, hier ist die README http://google-code-prettify.googlecode.com/svn/trunk/README. html Dies ist auch eine großartige Ressource http://meta.stackexchange.com/a/75019/187632 – ZnArK

+0

1 bis ich genau das gleiche Problem hatte und diese Antwort funktioniert perfekt –

Antwort

3

Ihre settings.xml sollte as documented in the Nexus book konfiguriert werden. Ihre Konfiguration wird nicht funktionieren, da sie den Super Pom von Maven nur teilweise außer Kraft setzt.

+1

Sorry, aber das macht nicht viel Sinn. Natürlich, wenn ich auf Nexus-Profil ein einzelnes Repo für Snapshots und Releases aktivieren würde es funktionieren. Aber warum sollte ich das tun? Was bringt es, nur im Snapshot-Repository nach Releases zu suchen? – Uberto

+1

Der Punkt ist, dass Sie EVERTHING (Release und Snapshots) in die öffentliche Gruppe spiegeln, und Sie müssen es ihnen ermöglichen, durchzukommen. Es sei denn natürlich, dass Sie niemals Snapshots verwenden möchten. –

+1

Nun, im Idealfall möchte ich meine Snapshots aus dem öffentlichen Repo heraushalten, anderenfalls, warum sollte ich zwei Repos haben? Wie auch immer, hier ist das Problem das Gegenteil, auf der Suche nach Releases im Snapshot-Repository. Was ich verstehe, ist, dass maven guys den Snapshot repo gemeint haben, um alles * plus * die Snapshots zu behalten, nicht nur Snapshots. Was mir auch gut geht, wenn es nur etwas expliziter dokumentiert wäre. – Uberto

1

Ich lief auch in diese. Ich konnte an ihm vorbei kommen, indem Sie:

<repository> 
     <id>my-snapshots</id> 
     <url>https://nexus.corp.company.com/nexus/content/repositories/snapshots</url> 
     <snapshots> 
      <enabled>true</enabled> 
     </snapshots> 
     <releases> 
      <enabled>true</enabled> 
     </releases> 
    </repository> 

, die eine Abweichung von vorher mit war:

 <releases> 
      <enabled>false</enabled> 
     </releases> 

Dies scheint zu passieren, wenn Maven die Metadaten für Ihre aktuellen Artefakt sucht, und beschränkt seine Suche auf nur Repos, die auch dieses Artefakt enthalten könnten.

Verwandte Themen