... अगर प्लगइन को मामूली संस्करण के बजाय प्रमुख संस्करण बढ़ाने का कोई तरीका है।
वर्तमान में जब मैं संस्करण 1.1.0-स्नैपशॉट पर हूं तो अगला संस्करण से 1.1.1-स्नैपशॉट सेट है लेकिन आदर्श रूप में मैं इसे 1.2.0-स्नैपशॉट में बदलना चाहता हूं।
क्या तुम यहाँ का वर्णन कर रहे हैं कि Maven रिलीज-प्लगइन आपके ठीक संस्करण incrementing है और आप लघु संस्करण वृद्धि चाहते हैं। जहां संस्करण x.y.z
का अर्थ है [majorVersion].[minorVersion].[fixVersion]
।
तरह से मैं इस हल निम्नलिखित तरीके से है:
- ग्रूवी स्क्रिप्ट है कि यह आपके
pom.xml
वेतन वृद्धि ढंग आप समझा रहे हैं में से संस्करण ले जाएगा बनाएँ और developmentVersion
और releaseVersion
हडसन स्ट्रिंग के रूप में स्थापित मापदंडों।
- हडसन पर
- प्लेस ग्रूवी स्क्रिप्ट कार्य बनाएं अपनी नौकरी के कार्यक्षेत्र
- काम पर में स्थापित एक "प्रणाली ग्रूवी स्क्रिप्ट निष्पादित" कदम का निर्माण - काम सेट पर ग्रूवी स्क्रिप्ट
- के लिए पथ प्रदान एक "शीर्ष स्तरीय मेवेन लक्ष्यों को आमंत्रित करें" चरण बनाएं और
developmentVersion
और releaseVersion
गुणों के साथ मेवेन रिलीज कमांड का आह्वान करें।
चरण 1:
import hudson.model.*
createReleaseAndDevelopmentVersions();
def createReleaseAndDevelopmentVersions() {
def POM_LOCATION = build.parent.builds[0].properties.get("envVars")['WORKSPACE'] + "/pom.xml";
def SNAPSHOT_PART = "-SNAPSHOT";
def projectVersion = findOutCurrentVersion(POM_LOCATION);
def versionParts = projectVersion.tokenize('.');
def mayorVersionPart = versionParts[0];
def minorVersionPart = versionParts[1];
def fixVersionPart = versionParts[2];
def snapshotPartIndex = fixVersionPart.indexOf(SNAPSHOT_PART);
boolean hasSnapshotPart = snapshotPartIndex != -1;
if (hasSnapshotPart) {
fixVersionPart = fixVersionPart.substring(0, snapshotPartIndex);
}
int minorVersion = minorVersionPart.toInteger();
int fixVersion = fixVersionPart.toInteger();
def newFixVersion = 0;
def newMinorRelVersion;
def newMinorDevVersion;
if (hasSnapshotPart) {
newMinorRelVersion = minorVersion;
newMinorDevVersion = minorVersion + 1;
} else {
//TODO: either throw an exception here or change the newMinorRelVersion newMinorDevVersion appropriately to suite your use-cases:
//throw new IllegalArgumentException("The pom at location " + POM_LOCATION + " contains the version " + projectVersion + " which is not a snapshot version (missing " + SNAPSHOT_PART + "). This is a released version and nothing should happen to it!");
}
def releaseVersion = mayorVersionPart + "." + newMinorRelVersion + "." + newFixVersion;
def developmentVersion = mayorVersionPart + "." + newMinorDevVersion + "." + newFixVersion + SNAPSHOT_PART;
createJenkinsVariablesAndAddToCurrentJob(releaseVersion, developmentVersion);
}
def findOutCurrentVersion (POM_LOCATION) {
def thr = Thread.currentThread()
def build = thr?.executable
def projectVersionParam = "projectVersion"
def resolver = build.buildVariableResolver
def projectVersionParamValue = resolver.resolve(projectVersionParam)
return projectVersionParamValue
}
def createJenkinsVariablesAndAddToCurrentJob (releaseVersion, developmentVersion) {
def pa = new ParametersAction([
new StringParameterValue("releaseVersion", releaseVersion), new StringParameterValue("developmentVersion", developmentVersion)
])
Thread.currentThread().executable.addAction(pa)
}
चरण 5 (Maven आदेश):
clean release:clean release:prepare release:perform -DreleaseVersion=${releaseVersion} -DdevelopmentVersion=${developmentVersion}
चीयर्स,
तानाशाह आपके उत्तर के लिए
धन्यवाद Zac। मैं नहीं चाहता कि यह संस्करण के लिए संकेत दे, लेकिन मैं हर बार रिलीज वर्जन और डेवलपमेंट वर्जन को बदलने और बदलने की आवश्यकता नहीं चाहता हूं। मैं सिर्फ यह देखना चाहता हूं कि संस्करण को स्वचालित रूप से बढ़ाने का कोई तरीका है या नहीं। -DautoVesrionSubmodules का उपयोग छोटे संस्करण को बढ़ाता है लेकिन मुझे प्रमुख संस्करण को बढ़ाने की आवश्यकता है। मैं 1.1.0 से 1.2.0 – Arya
पर जाना चाहता हूं @ आर्य वास्तव में '-DautoVersionSubmodules' स्वचालित रूप से आपके लिए संस्करण नहीं चुनता है। यह केवल यह सुनिश्चित करता है कि निर्दिष्ट संस्करण सभी मॉड्यूल पर लागू होता है (अन्यथा आपको प्रत्येक के लिए संकेत दिया जाता है)। मैं दोहराता हूं, "कुछ आपके लिए चुन रहा है"। अगर यह मैवेन है, तो मुझे नहीं लगता कि यह रिलीज प्लगइन है। मुझे संदेह है कि आपके हडसन कॉन्फ़िगरेशन में ऐसा कुछ है। –