Gradle快速構築(一)ASプロジェクト構築構成進級
4414 ワード
GradleでAndroid Studioプロジェクトを構築すると、デフォルトでは基礎構成があります.その上で、変数を集約することで、明瞭で簡潔です.
文書ディレクトリ一、構成ソースコードコンパイルパス リソースディレクトリ の構成二、構成コンパイルバージョンと依存バージョンがグローバル変数 である三、パッケージ関連のいくつかの構成 四、Gradleコンパイル互換性構成 1. lintチェック 2. 依存倉庫 一、ソースコードのコンパイルパスの構成
ASにはデフォルトのソースコードコンパイルパスがあることはよく知られています.例えばjavaはmain/javaの下にあります.soライブラリの参照はmain/jniLibsの下にあり、以下のように参照アドレスを変更します.
リソースディレクトリの構成
リソースコンパイルパスの構成を習得し,jniのライブラリやsrcでのコンパイルパス,ベストパッケージのコンパイルなど非常に実用的である.
二、コンパイルバージョンと依存バージョンをグローバル変数に設定する
通常、オンラインプロジェクトを構築するには、必ず複数のModulesとサードパーティライブラリの依存性が含まれています.バージョンの競合に依存したり、コンパイルしたりする場合、手動で変更するのは面倒です.自動化されたプロジェクトは、必ず統一的な構成が必要です.以下はgradleグローバルの構成によってこの操作を実現します.私たちはメインプロジェクトディレクトリでApp:build.gradleでグローバルを構成するバージョンパラメータ Modulesのbuild.gradleでは を使用
三、パッケージ関連のいくつかの構成このうちshrinkResourcesは私のテストでは効果的ではありません.releaseエンジニアリングがリリースされた場合は、「Refactor」オプション「Remove Unused Resources」を使用して、コンパイル前に を削除できます.
四、Gradleコンパイル互換性構成
1.lintチェック
lintOptons宣言を追加することで、コンパイルを構成する際に重要でないエラーを報告してコンパイル問題を中断します(個人は追加することをお勧めしません.借金を返すので、規範化されていない場所では爆発する日があります).
2.依存倉庫
gradleでは依存パッケージを簡単に使用できますが、eclipseでmavenウェアハウスを使用する場合と同様に、gradleを構成する際にもLibウェアハウスを宣言します.
プロジェクトの下にあるbuild.gradleで宣言:
文書ディレクトリ
ASにはデフォルトのソースコードコンパイルパスがあることはよく知られています.例えばjavaはmain/javaの下にあります.soライブラリの参照はmain/jniLibsの下にあり、以下のように参照アドレスを変更します.
リソースディレクトリの構成
リソースコンパイルパスの構成を習得し,jniのライブラリやsrcでのコンパイルパス,ベストパッケージのコンパイルなど非常に実用的である.
android {
sourceSets.main {
// jniLibs, libs
jniLibs.srcDir 'src/main/libs'
//disable automatic ndk-build call
// NDK
jni.srcDirs = []
manifest.srcFile 'src/main/AndroidManifest.xml'
java.srcDirs = ['src/main/java']
resources.srcDirs = ['src/main/resources']
aidl.srcDirs = ['src/main/aidl']
renderscript.srcDirs = ['src/main/renderscript']
res.srcDirs = ['src/main/res']
assets.srcDirs = ['src/main/assets']
}
}
二、コンパイルバージョンと依存バージョンをグローバル変数に設定する
通常、オンラインプロジェクトを構築するには、必ず複数のModulesとサードパーティライブラリの依存性が含まれています.バージョンの競合に依存したり、コンパイルしたりする場合、手動で変更するのは面倒です.自動化されたプロジェクトは、必ず統一的な構成が必要です.以下はgradleグローバルの構成によってこの操作を実現します.
ext {
supportLibVersion = '27.0.1' // variable that can be referenced to keep support libs consistent
versionBuildTool = '27.0.3'
versionCompiler = 27
versionTarget = 27
versionNameString = '1.0.0'
javaSourceCompatibility = JavaVersion.VERSION_1_8
javaTargetCompatibility = JavaVersion.VERSION_1_8
}
android {
compileSdkVersion versionCompiler
buildToolsVersion versionBuildTool
// java
compileOptions {
sourceCompatibility javaSourceCompatibility
targetCompatibility javaTargetCompatibility
}
defaultConfig {
applicationId "com.xxx.xxx"
minSdkVersion 18
targetSdkVersion versionTarget
versionCode 1
versionName versionNameString
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
//----------
}
dependencies {
api fileTree(dir: 'libs', include: ['*.jar'])
implementation "com.android.support:support-v4:${supportLibVersion}"
implementation "com.android.support:support-annotations:${supportLibVersion}"
}
三、パッケージ関連のいくつかの構成
buildTypes {
release {{// release
shrinkResources true // res , apk
zipAlignEnabled true // Zipalign ,
minifyEnabled true //
//
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
debuggable false // debug
jniDebuggable true // jni debug
}
debug {// debug
}
}
四、Gradleコンパイル互換性構成
1.lintチェック
lintOptons宣言を追加することで、コンパイルを構成する際に重要でないエラーを報告してコンパイル問題を中断します(個人は追加することをお勧めしません.借金を返すので、規範化されていない場所では爆発する日があります).
lintOptions {
/** Whether lint should set the exit code of the process if errors are found */
abortOnError false //
/**
* Returns whether lint should check for fatal errors during release builds. Default is true.
* If issues with severity "fatal" are found, the release build is aborted.
*/
checkReleaseBuilds false //release
}
2.依存倉庫
gradleでは依存パッケージを簡単に使用できますが、eclipseでmavenウェアハウスを使用する場合と同様に、gradleを構成する際にもLibウェアハウスを宣言します.
プロジェクトの下にあるbuild.gradleで宣言:
buildscript {
repositories {
google()
jcenter()
//mavenCentral() maven , , ,
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0-alpha13'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}