SORU
23 AĞUSTOS 2010, PAZARTESİ


Nasıl bash komut satırına Maven project sürüm için

Bir önceki yeni bir sorun için bana yol how to change Maven project vesion from command line bir sorum yayınladı.

Daha önce sürümü komut satırı grep ve ayrıştırmak için kolay bir özellik olarak depolanan beri sürüm numarası (bash) bulabildim. Pom.xml elemanın bu iş için kullanılan şimdi, artık tüm bağımlılıkları beri benzersiz ve belki başkaları da bunu kullan. Bir bash script ile geçerli sürüm numarasını almak için bir yolu yok sanırımolmadanxml ayrıştırma veya bağlam-farkında sed bazı çok komutu için harici araçlar.

Benim opinnion en temiz çözüm Maven bu sürüm bir bilgi elde etmek için olacaktır. Farklı özellikleri almak için özel bir maven plugin yazmayı düşünüyordum ama burada ilk sorabilirim diye düşündüm.

Komut satırına ${project.version} değerini almak için herhangi bir kolay yolu var mı? Şimdiden teşekkürler.

Çözüm

Yardımın için teşekkür ederim. 5* *dizine elle zorunda kaldım ama o kadar kolay olabiliyor. Bash senaryom var

version=`cd $project_loc && mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version | sed -n -e '/^\[.*\]/ !{ /^[0-9]/ { p; q } }'`

Bana da önceden ben güncel sürümünü verir. Grepping simplier olabilir ama bir numara ile başlar ve sürüm numarası gibi bu işi deneyin ilk satırı memnun değilim bu yüzden mümkün olduğunca sağlam gibi, diye düşündüm.

# Advances the last number of the given version string by one.
function advance_version () {
    local v=$1
    # Get the last number. First remove any suffixes (such as '-SNAPSHOT').
    local cleaned=`echo $v | sed -e 's/[^0-9][^0-9]*$//'`
    local last_num=`echo $cleaned | sed -e 's/[0-9]*\.//g'`
    local next_num=$(($last_num 1))
    # Finally replace the last number in version string with the new one.
    echo $v | sed -e "s/[0-9][0-9]*\([^0-9]*\)$/$next_num/"
}

Ve sadece çağırarak bunu kullanıyorum

new_version=$(advance_version $version)

Bu kimse yardımcı olur umarım.

CEVAP
23 AĞUSTOS 2010, PAZARTESİ


Maven Help Plugin bir şekilde zaten bunun için bir şey öneriyor:

  • help:evaluate etkileşimli modda Maven ifadeler, kullanıcı tarafından verilen değerlendirir.

Komut satırında ${project.version} almak için çağırmak.

mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate \
    -Dexpression=project.version

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Android Developers

    Android Deve

    9 Kasım 2007
  • DancingIsAPassion

    DancingIsAPa

    29 AĞUSTOS 2009
  • Jeb Corliss

    Jeb Corliss

    17 Kasım 2006