gradle - परीक्षण के बिना ग्रैडल निर्माण




(6)

gradle build -x test --parallel

अगर आपकी मशीन में कई कोर हैं। हालांकि, समानांतर साफ उपयोग करने की अनुशंसा नहीं की जाती है।

मैं यूनिट परीक्षण निष्पादित किए बिना gradle build निष्पादित करना चाहता हूं। मैंने कोशिश की:

$ gradle -Dskip.tests build

ऐसा कुछ नहीं लगता है। क्या कोई अन्य कमांड है जिसका मैं उपयोग कर सकता हूं?


स्वीकृत उत्तर सही है।

ओटीओएच, जिस तरह से मैंने पहले हल किया था वह सभी परियोजनाओं में निम्नलिखित जोड़ना था:

test.onlyIf { ! Boolean.getBoolean('skip.tests') }

बिल्ड को -Dskip.tests=true साथ -Dskip.tests=true और सभी परीक्षण कार्यों को छोड़ दिया जाएगा।


Reference

किसी भी कार्य को gradle use -x कमांड-लाइन विकल्प से बाहर करने के लिए। नीचे उदाहरण देखें

task compile << {
    println 'task compile'
}

task compileTest(dependsOn: compile) << {
    println 'compile test'
}

task runningTest(dependsOn: compileTest) << {
    println 'running test'
}
task dist(dependsOn:[runningTest, compileTest, compile]) << {
    println 'running distribution job'
}

आउटपुट: gradle -q dist -x runningTest

task compile
compile test
running distribution job

उम्मीद है कि यह आपको बुनियादी देगा


प्रयत्न:

gradle assemble

अपनी परियोजना के लिए सभी उपलब्ध कार्यों को सूचीबद्ध करने के लिए, कोशिश करें:

gradle tasks

अद्यतन करें:

यह पहले सबसे सही जवाब नहीं प्रतीत हो सकता है, लेकिन सावधानीपूर्वक gradle tasks आउटपुट या दस्तावेज़ों को धीरे-धीरे पढ़ें।

Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.

परियोजना में परीक्षण कार्यों को अक्षम करने का अलग तरीका यह है:

tasks.withType(Test) {enabled = false}

इस व्यवहार को कभी-कभी आवश्यकता होती है यदि आप किसी एक परियोजना (या परियोजनाओं के समूह) में परीक्षण अक्षम करना चाहते हैं।

इस तरह सभी प्रकार के परीक्षण कार्य के लिए काम करते हैं, सिर्फ एक जावा 'परीक्षण' नहीं। इसके अलावा, इस तरह से सुरक्षित है। मेरा मतलब यह है कि मेरा कहना है कि: अलग-अलग भाषाओं में परियोजनाओं का एक सेट है: यदि हम इस तरह के रिकॉर्ड को मुख्य build.gradle में जोड़ने का प्रयास करते हैं:

 subprojects{
 .......
 tests.enabled=false
 .......
}

हम एक परियोजना में असफल हो जाएंगे जब हमारे पास परीक्षण नामक कोई कार्य नहीं है


संक्षेप में, उन लोगों के लिए नहीं जानते कि build.gradle (मेरे जैसे) में पैकेज कैसे आयात करें, निम्न buildTypes उपयोग करें,

buildTypes {
      release {
        signingConfig signingConfigs.release
        applicationVariants.all { variant ->
            def file = variant.outputFile
            def manifestParser = new com.android.builder.core.DefaultManifestParser()
            variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + manifestParser.getVersionName(android.sourceSets.main.manifest.srcFile) + ".apk")) 
        }
    }       
}

===== संपादित करें =====

यदि आप अपनी build.gradle और versionName को अपनी build.gradle फ़ाइल में इस तरह सेट करते हैं:

defaultConfig {
    minSdkVersion 15
    targetSdkVersion 19
    versionCode 1
    versionName "1.0.0"
}

आपको इसे इस तरह सेट करना चाहिए:

buildTypes {   
        release {
            signingConfig signingConfigs.releaseConfig
            applicationVariants.all { variant ->
                def file = variant.outputFile
                variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
            }
        }
}


====== एंड्रॉइड स्टूडियो 1.0 के साथ संपादित करें ======

यदि आप एंड्रॉइड स्टूडियो 1.0 का उपयोग कर रहे हैं, तो आपको इस तरह की एक त्रुटि मिलेगी:

Error:(78, 0) Could not find property 'outputFile' on com.and[email protected]67e7625f.

आपको build.Types बदलना चाहिए। इस पर भाग build.Types :

buildTypes {
        release {
            signingConfig signingConfigs.releaseConfig
            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    output.outputFile = new File(output.outputFile.parent, output.outputFile.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
                }
            }
        }
    }




gradle