Java >> Java-zelfstudie >  >> Tag >> maven

Jenkins:Een variabele gebruiken uit een pre-build shell in de Maven Doelen en opties

Je bent hier op de goede weg, maar je hebt een derde functie van de EnvInject-Plugin gemist:de bouwstap "Injecteer omgevingsvariabelen" die variabelen kan injecteren in de volgende bouwstappen op basis van het resultaat van een script of eigenschappen.

We gebruiken de EnvInject-plug-in zomaar; Een script stelt een bron in en communiceert de parameters ervan met behulp van eigenschappen die vervolgens door de plug-in worden gepropageerd als omgevingsvariabelen.

d.w.z. het opzetten van een tijdelijke database voor de build:


Ik had een soortgelijk probleem, ik probeerde een buildversie te berekenen en deze in de build te injecteren. Nadat ik tegen dezelfde problemen aanliep (niet uitbreiden, enz.), gebruikte ik de optie "Omgevingsvariabelen van script genereren", die de uitvoer interpreteert als tag=value-paren in Jenkins-variabelen. Het script :

  #generate a version code that is high enough to surpass previously published clients
  val=`expr 150000 + $BUILD_NUMBER`
  echo VERSION_CODE=$val

Hierna kon ik $VERSION_CODE als volgt in maven injecteren:

  -Dbuild.vercode=${VERSION_CODE}

Ik hoop dat dat voor jou werkt.


Dit probleem wordt veroorzaakt door een bug in de Jenkins Maven Project-plug-in, zoals beschreven in dit bugrapport, geopend op 22-06-2012. De plug-in is nog niet gerepareerd vanaf versie 2.1.

Er is een oplossing voorgesteld voor de Maven Project-plug-in, maar deze is nog niet geïntegreerd. Hier is de link naar het pull-verzoek:https://github.com/jenkinsci/maven-plugin/pull/14

Als je de plug-in zelf bouwt met de pull-request-patch toegepast, worden de variabelen geïnjecteerd en zoals verwacht beschikbaar gemaakt in het veld 'doelen en opties'.


Java-tag