2017-07-21 2 views
-1

Ich habe baut wie: 1.0.0-9, 1.0.0-10, 1.0.0-11, 1.0.0-12 usw.Maven Versionskontrolle Konfiguration

ich meine Abhängigkeit konfiguriert haben wie: [1.0.0)

was bedeutet, dass es die neueste Version von den bestehenden verwenden sollte (oFC, die mit 1.0.0 beginnt), sondern stattdessen die 1.0.0-12 die Verwendung von früher die 1.0.0-9. Ich denke, dass es, weil die 9 ist Reibe dann die 1.

Erstens möchte ich den Maven zwingen, wirklich meine neuesten Builds zu verwenden.

Ich kann auch 1.0.0-LOCAL bauen (das ist eine lokale Build auf dem PC des Entwicklers). Ich möchte den Maven zwingen, den 1.0.0-LOCAL anstelle von anderen Builds zu verwenden, wenn es verfügbar ist.

Ich weiß nicht genau, wie ich diese tun könnte, vielleicht irgendwie mit der settings.xml Konfigurationsdatei, die auf dem Build-Rechner befindet und auf den PC des Entwicklers als auch.

Wenn ich einen anderen Weg hätte, lass es mich wissen.

einen guten Tag haben, Arnold Robert Turdean

Update: Es stellte sich heraus, dass die Maven Version Range - downloads all the available versions not just the latest one das ursprüngliche Problem war.

Antwort

1

Welche Maven-Version verwenden Sie? Aus der Sicht von Maven sind all diese Versionen Versionen? Die Frage ist, ob es nicht besser wäre, stattdessen eine SNAPSHOT-Version zu verwenden.

Außerdem zu überprüfen, ob die Bestellung Ihrer Artefakte korrekt ist oder arbeiten wie Sie dies durch die Verwendung dieser geprüft werden erwartet:

java -jar apache-maven-3.3.9\lib\maven-artifact-3.3.9.jar 1.0.0-12 1.0.0-9 

Anzeigeparameter wie analysiert durch Maven (in kanonischer Form) und Vergleichsergebnis:

1. 1.0.0-12 == 1-12 
    1.0.0-12 > 1.0.0-9 
2. 1.0.0-9 == 1-9 

die korrekt zeigt, dass mehr als 1.0.0-121.0.0-9 ist. Also die Frage ist auch, wenn Sie einen Repository-Manager usw. verwenden? Machst du nur eine mvn install?

Was ich nicht verstehe, ist Ihre Aussage über `1.0.0-LOCAL '?

Abgesehen davon würde ich vorschlagen, die Verwendung von Versionsbereichen zu verhindern, weil sie Sie nicht reproduzierbar bauen lassen.

+0

Gibt es ein verständliches vollständiges und aktuelles Dokument, das die Reihenfolge der Versionsnummern erklärt?Bis heute dachte ich, dass nur die ersten 3 Zahlen (major.minor.bugfix) semantisch geordnet sind und der Rest alphabetisch geordnet ist. –

+1

Beginnend mit Maven 3 wurde es geändert. Siehe https://maven.apache.org/ref/3.0.3/maven-artifact/apidocs/org/apache/maven/artifact/versioning/ComparableVersion.html außerdem http://blog.soebes.de/blog/2017/02/04/apache-maven-how-version-comparison-works/Aber dieser Hinweis erinnert mich daran, das in die offizielle Maven-Site zu integrieren ... – khmarbaise

+0

Danke, du hast mir geholfen, herauszufinden, dass nicht die Versionsnummer die war Problem, aber ein anderes Maven-Verhalten (https://stackoverflow.com/questions/45261222/maven-version-range-downloads-all-the-available-versions-not-just-the-latest-o) –

-1

In Maven ist Abhängigkeitshierarchie so wichtig. Stellen Sie sicher, dass Sie keine anderen Abhängigkeiten haben, die zuvor in anderen Poms hinzugefügt wurden.

(In der Hierarchie kümmert sich Maven um die letzte Abhängigkeit.). Dependency 1.0.0-LOCAL muss die neueste sein.

Ich empfehle Ihnen, während der lokalen Entwicklungszeit verwenden generische -SNAPSHOT, Zahlen verwenden, wenn Sie beginnen zu verpacken.

+0

Maven kümmert sich nicht um die letzte Abhängigkeit (hängt davon ab, wie Ihr Versionsbereich aussieht, wenn Sie sie verwenden), wählt die nächste Abhängigkeit aus und diese Version wird genommen ... insbesondere, wenn Sie an einen Abhängigkeitsbaum mit mehr als einem denken Niveau... – khmarbaise

Verwandte Themen