2013-09-27 11 views
6

Maven 3 projesi ve "Maven release build" eklentisi etkinleştirilerek bir Jenkins işi yapılandırdım ve ayrıca, artıkları bir Nexus deposuna yerleştirmek için bir post-build eylemi ekledim. Ancak, "Build Now" (Şimdi Oluştur) düğmesi yerine "Maven Sürümünü Gerçekleştir" bağlantısını tıklatarak, kullanıcı bu işlemi başlatmamışsa, yapay nesnelerin dağıtılmasını istemiyorum. "Hemen Oluştur" düğmesine tıkladığımda, herhangi bir yere dağıtılmayacak bir anlık görüntü oluşturmak istiyorum.Bir sürüm oluşturma gerçekleştirmediğim sürece Jenkins'i Maven deposuna dağıtmamak için nasıl yapılandırabilirim?

Bu davranışı denetlemek için IS_M2RELEASEBUILD adlı bir ortam değişkeni kullanabileceğimi belgelerden anladım. Bu ortam değişkeni, yapıyı "Maven Sürümünü Gerçekleştir" bağlantısı üzerinden başlatıldığında M2 Serbest Bırakma Eklentisi tarafından doğru olarak ayarlanmıştır. Ancak post inşa eylemi bunu tamamen görmezden geliyor.

Jenkins Settings

Ben Jenkins LTS 1.509.3 Maven'i 3.0.5 kullanıyorum.

UPDATE: Lütfen POM içindeki Maven Serbest Bırakma Eklentisini kullanarak bir geçici çözüm aramayacağımı unutmayın. Amacım, check-in'ler tarafından tetiklenen CI yapısı (anlık görüntüyü dağıtmadan) olarak çalışan ve Jenkins M2 Release eklentisini kullanarak bir yayın oluşturma işlemini gerçekleştirmek için aynı işi kullanabilecek tek bir Jenkins işi oluşturmaktır.

+0

Versiyonu SNAPSHOT olarak değiştirmek ve anlık görüntü havuzunu tanımlamaya ne dersiniz? –

+1

@AbhijithNagarajan 2 post-build eylemi (bir sürüm için bir tane ve bir tane anlık görüntü için) sahip olmanın bir yolunu görmüyorum ve sanırım bir ya da diğerini koşullu yürütmenin bir yolunu bulmakta benzer bir problem olurdu. Ayrıca aslında enstantane eserler dağıtmak istemiyorum. –

+0

Neden eşyalarınızı dağıtmak için maven kullanmıyorsunuz? –

cevap

2

Flexible Publish Plugin bir göz atın:

Özür, dağıtmaya yok maven için (kolayca gerekli desen

enter image description here

karşı ortam değişkeni kontrol etmek ve uygun sonrası inşa eylemi tetikleyebilir düşünüyorum)

enter image description here

1

eklerseniz maven serbest bırakma hedeflerine eylem dağıtın, o zaman Jenkins işinde ayrı bir adım gerekmez. Bu hedefler sadece serbest bırakıldığında yürütülür: gerçekleştirin. gibi bir şey:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <configuration> 
    <goals>deploy</goals> 
    </configuration> 
</plugin> 

Peter Schuetze yorumlarda bu yanıtladı ve muhtemelen ödül almak için bu cevabı gönderilmesi gerekiyor.

0

Bu soruya cevabım görünüşe göre cevaptır. ;)

Dağıtım hedefini sürüm hedeflerine ekleyemiyor musunuz? 'un, sadece bir sürüm ise, yalnızca çalıştırılacağını tahmin ediyorum.

İlgili konular