2016-07-08 13 views
7

के माध्यम से प्रोजेक्ट डीआईआर में वर्जन.txt फ़ाइल बनाएं, मेरी अज्ञानता के लिए अग्रिम में माफी। मैं धीरे-धीरे बढ़ने के लिए नया हूँ।build.gradle कार्य

मेरा लक्ष्य मेरे build.gradle फ़ाइल में कुछ कार्य करना है, जिसमें मेरी प्रोजेक्ट रूट में gradle टर्मिनल कमांड चलाने पर मेरी प्रोजेक्ट निर्देशिका में फ़ाइल 'version.txt' बनाई गई है।

Version: 1.0 Revision: 1z7g30jFHYjl42L9fh0pqzmsQkF Buildtime: 2016-06-14 07:16:37 EST Application-name: foobarbaz app

(^ संशोधन किया जाएगा Git प्रमुख के हैश प्रतिबद्ध)

मैं करने के लिए कोशिश की है: यह 'version.txt' फ़ाइल जैसे निर्माण के संस्करण मेटाडाटा, शामिल करने की जरूरत है के टुकड़े का पुन: उपयोग निम्न संसाधनों से है, लेकिन कोई लाभ नहीं हुआ, संभवतः क्योंकि इन संसाधनों पुराने हो चुके हैं: http://mrhaki.blogspot.com/2015/04/gradle-goodness-use-git-commit-id-in.html http://mrhaki.blogspot.com/2010/10/gradle-goodness-add-incremental-build.html

मैं Gradle संस्करण 2.14 उपयोग कर रहा हूँ (जो नवीनतम संस्करण है)।

कोई भी मदद और/या अंतर्दृष्टि की बहुत सराहना की जाएगी। धन्यवाद!

उत्तर

17

उदाहरण जिसका आप उल्लेख कर रहे हैं वह लगभग सही है। नाबालिग तोड़ मरोड़ यह उम्मीद के रूप में काम करता है के एक जोड़े के साथ:

import java.text.SimpleDateFormat 
import org.ajoberstar.grgit.Grgit 

plugins { 
    id "org.ajoberstar.grgit" version "1.5.1-rc.3" 
} 

version = 1.0 

task versionTxt() { 
    doLast { 
     new File("$projectDir/version.txt").text = """ 
Version: $version 
Revision: ${Grgit.open(dir: '.').head().id} 
Buildtime: ${new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").format(new Date())} 
Application-name: foobarbaz app 
""" 
    } 
} 

भागो gradle versionTxt वांछित आउटपुट मिलता है।

+0

यह अपेक्षा के अनुसार काम किया। जिस उदाहरण का मैं जिक्र कर रहा था वह वास्तव में लगभग सही था। एक बार फिर धन्यवाद! –

+0

मामूली tweaks: बाएं शिफ्ट को बहिष्कृत किया गया है और 'doLast' आंतरिक बंद के साथ प्रतिस्थापित किया जाना चाहिए। साथ ही, आप फ़ाइल निर्माण को एक-लाइनर 'नई फ़ाइल (फ़ाइल नाम) में परिवर्तित कर सकते हैं .text = "blah" ' – MarkHu

+0

धन्यवाद, अपडेट किया गया। – Jk1

संबंधित मुद्दे