2013-03-14 20 views
5

Amacım, tek bir bağımlılığa sahip olan bir projeyi yayınlamaktır. Her iki anlık görüntüyü dağıttığım ve sürümleri yayınladığım bir nexus deposum var.maven sürümleri adaylar ve anlık görüntü yayınlamak

Ben bir bağımlılık

group:artifact:1.1.0-SNAPSHOT 

vardır ve şu Release Candidate hiçbir iddia

group:artifact:1.1.0-RC1 

bağımlılıkları çözmek için eklentisi versiyonlarına soran benim nexus repo salınır yeni bağımlılık mevcuttur. Yani o benim projede ise

1.1.0-SNAPSHOT > 1.1.0-RC1 

Ancak, ben 1.1.0-RC1 en yeni sürümü olarak çözülene 1.0.0-SNAPSHOT, sürüm sürümüne sahip olduğunu düşünün.

Neyi eksik? (Eklenti kaynaklarına baktım ve aşağıdaki pasajı vardır:.?

String otherQualifier = otherVersion.getQualifier(); 

if (otherQualifier != null) 
{ 
    if ((qualifier.length() > otherQualifier.length()) 
     && qualifier.startsWith(otherQualifier)) 
    { 
    // here, the longer one that otherwise match is considered older 
    result = -1; 
    } 
    else if ((qualifier.length() < otherQualifier.length()) 
     && otherQualifier.startsWith(qualifier)) 
    { 
    // here, the longer one that otherwise match is considered older 
    result = 1; 
    } 
    else 
    { 
    result = qualifier.compareTo(otherQualifier); 
    } 
} 

herhangi bir fikir bana arabası görünüyor

cevap

9
şöyle

Maven sürüm numaraları oluşmaktadır:

<major version>.<minor version>.<incremental version>-<qualifier> 

ise tüm sürüm numaraları eşittir, niteleyici alfabetik olarak karşılaştırılır. "RC1" ve "SNAPSHOT" ve "a" ve "b" için farklı bir şekilde sıralanmaz. Sonuç olarak, "SNAPSHOT" daha yeni olarak kabul edilir çünkü alfabetik olarak daha büyüktür. this page referans numarası

Not: a.b.c-RC1-SNAPSHOT, a.b.c-RC1'dan daha eski sayılır.

Çözüm olarak ne önereceğime emin değilim - bu sadece Maven sürümünün nasıl çalıştığıdır.

+0

sağlanan bağlantı çok yardımcı kendi iş mantığını

org/codehaus/mojo/versions/ordering/MavenVersionComparator 

uzanan ve

org/codehaus/mojo/versions/ordering/VersionComparators.java 

yılında kendi sınıfı tarafından bildirilen ve uygulanan teşekkürler, – mirlitone

+0

SNAPSHOT, anlattığınız işlemin dışında maven tarafından işlenen özel bir niteleyici olduğundan, bu yalnızca yarı doğrudur. Bakınız: https://docs.oracle.com/middleware/1212/core/MAVEN/maven_version.htm#MAVEN401 –

1

Teknik özellikler yalnızca major.minor.increment-qualifier ile çalışarak, arızalı anlık görüntüden bağımsız olarak veya herhangi bir şeyden bağımsız olarak, sözdizimsel sıraya göre nitelendirilmiştir.

Maven-version-plugin'i forma sokarak ve bir sürüm adayının bir anlık versiyonunun her zaman sürüm adayının kendisinin daha büyük olduğunu düşünen kendi sürümlerimi uygulamamı bitirdim.

Bu, uygulamak için çok zor değildi ben

İlgili konular