2017-11-22 17 views
0

以下は、私のbuild.gradleファイルです。android gradle build - assembleReleaseまたはassembleLiveの前にタスクを実行

build.gradle

buildscript { 
    repositories { 
     maven { url 'https://maven.fabric.io/public' } 
    } 

    dependencies { 
     classpath 'io.fabric.tools:gradle:1.+' 
    } 
} 
apply plugin: 'com.android.application' 
apply plugin: 'io.fabric' 

repositories { 
    maven { url 'https://maven.fabric.io/public' } 
    google() 
} 



android { 
    signingConfigs { 
     liveSigning { 
      keyAlias 'xxxxxxx' 
      keyPassword 'xxxxxx' 
      storeFile file('D:\\xxxxx\\xxxxxxx\\xxxxx\\xxxx.jks') 
      storePassword 'xxxxxxx' 
     } 

    } 

    compileSdkVersion rootProject.ext.compileSdkVersion 
    buildToolsVersion rootProject.ext.buildToolsVersion 
    useLibrary 'org.apache.http.legacy' 
    sourceSets.main { 

     jniLibs.srcDir 'src/main/libs' 
     jni.srcDirs = []; 
    } 
    defaultConfig { 
     applicationId rootProject.ext.applicationId 
     minSdkVersion rootProject.ext.minSdkVersion 
     targetSdkVersion rootProject.ext.compileSdkVersion 
     versionCode rootProject.ext.versionCode 
     versionName rootProject.ext.versionName 
     multiDexEnabled true 
     resConfigs "en" 
     vectorDrawables.useSupportLibrary true 
    } 
    packagingOptions { 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/NOTICE.txt' 
    } 
    dexOptions { 
     incremental true 
     javaMaxHeapSize "4g" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
      signingConfig signingConfigs.liveSigning 
     } 

     debug { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 

     } 
    } 
    task ndkBuild(type: Exec) { 
     commandLine rootProject.ext.ndkPath, '-C', file('src/main').absolutePath 
    } 
    tasks.withType(JavaCompile) { 

     compileTask -> compileTask.dependsOn ndkBuild 

    } 

    lintOptions { 
     abortOnError false 
    } 
    productFlavors { 
     live { 
      minSdkVersion rootProject.ext.minSdkVersion 
      applicationId rootProject.ext.applicationId 
      signingConfig signingConfigs.liveSigning 
      targetSdkVersion rootProject.ext.compileSdkVersion 
      versionCode rootProject.ext.versionCode 
      versionName rootProject.ext.versionName 
      resConfigs "en" 
     } 
    } 
    flavorDimensions "default" 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    //compile files('libs/gson-2.2.4.jar') 
    compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}" 
    compile "com.android.support:cardview-v7:${rootProject.ext.supportLibVersion}" 
    compile "com.android.support:design:${rootProject.ext.supportLibVersion}" 
    compile files('libs/cordova-5.jar') 
    compile files('libs/org.apache.commons.io.jar') 
    compile files('libs/httpmime-4.2.3.jar') 
    compile files('libs/jsoup-1.7.3.jar') 
    compile files('libs/activation.jar') 
    compile project(':libraries:EventBus') 
    compile project(':libraries:PDFViewCtrlTools') 
    compile project(':libraries:imageannotations') 
    compile project(':libraries:bottom-bar') 
    compile project(':libraries:tooltip') 
    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
     transitive = true; 
    } 
    compile files('libs/glide-3.6.1.jar') 
    //compile 'com.roughike:bottom-bar:2.2.0' 
    compile project(':libraries:k4l-video-trimmer') 
    compile 'com.android.support:multidex:1.0.1' 
    compile 'net.yslibrary.keyboardvisibilityevent:keyboardvisibilityevent:2.0.1' 
    compile 'com.google.firebase:firebase-messaging:10.2.0' 
    compile 'me.relex:circleindicator:1.2.2' 
    compile 'com.daimajia.swipelayout:library:[email protected]' 
    compile 'org.apache.commons:commons-collections4:4.1' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 
    compile 'com.jakewharton:butterknife:8.8.1' 
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' 
} 

apply plugin: 'com.google.gms.google-services' 

Iは、Google PlayストアのためにアップロードするAPKを署名生成する前に、私は、コマンドラインのコードを実行します。そのコマンドラインプログラムを使って、私はNDKのログを無効にする、ウェブサイトをライブにするURLを変更するなどのいくつかの事前リリース活動をしたいと思います。どうすればassembleLiveまたはassembleReleaseの前に実行できますか? "assembleDebug"の前に、そのコマンドラインコードを実行したくありません。 "assembleLiveまたはassembleRelease"の前に実行したい

+0

これを試しましたか?https://stackoverflow.com/questions/18532415/execute-task-before-android-gradle-build? –

答えて

0

私のグラデルファイルに以下のコードを追加しました。それは魅力的です。

task prelivetask (type: Exec) { 
     commandLine 'cmd','/C', 'start', 'change.cmd' 
    } 
    tasks.whenTaskAdded { task -> 
     if (task.name == 'assembleRelease' || task.name == 'assembleLive') { 
      task.dependsOn prelivetask 
     } 
    } 
関連する問題