Skip to content

Commit 9121794

Browse files
committed
gradle code added
1 parent da0e381 commit 9121794

File tree

1 file changed

+133
-9
lines changed

1 file changed

+133
-9
lines changed

_drafts/2019-09-16-gradle.md

Lines changed: 133 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,144 @@ Informacje nt konfiguracji znajdują sie w kilku plikach projektu. Używają one
2323

2424
`settings.gradle` deklaruje moduły, które powinny wziąć udział w procesie budowania projektu
2525

26-
//TODO
26+
{% highlight gradle %}
27+
include ':app', ':module1', ':module2'
28+
{% endhighlight %}
2729

28-
`build.gradle` znajdujący się w głównym katalogu definuje konfigurację wspólną dla wszystkich modułów w projekcie
30+
`build.gradle` znajdujący się w głównym katalogu definuje konfigurację wspólną dla wszystkich modułów w projekcie, np. repozytoria i wersja `Sdk`
2931

30-
//TODO
32+
{% highlight gradle %}
33+
// Configure the repositories and dependencies needed for Gradle itself in buildscript block
34+
buildscript {
3135

32-
`build.gradle` znajdujący się w każdym module pozwala na specyficzną konfiguracje dla danego modułu uzupełniając lub nadpisując definicję `build.gradle` projektu
36+
//Define some shared properties
37+
ext {
38+
compileSdkVersion = 28
39+
supportLibVersion = "28.0.0"
40+
kotlin_version = '1.3.31'
41+
}
3342

34-
//TODO
43+
// Pass repositories for Gradle to search and download dependencies
44+
repositories {
45+
google()
46+
jcenter()
47+
}
3548

36-
`gradle.properties` określa ustawienia Gradle dla całego projektu, takie jak np. maksymalna wielkość stosu demona Gradle
49+
// Pass dependencies for Gradle to build project
50+
dependencies {
51+
classpath 'com.android.tools.build:gradle:3.4.1'
52+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
53+
}
54+
}
3755

38-
//TODO
56+
// Configure the global repositories and depenendencies used by all modules
57+
allprojects {
58+
repositories {
59+
google()
60+
jcenter()
61+
}
62+
}
3963

40-
`local.properties` konfiguruje lokalne właściwości środowiska dla systemu kompilacji, takie jak np. ścieżka instalacji SDK
64+
// Create some tasks if needed
65+
task clean(type: Delete) {
66+
delete rootProject.buildDir
67+
}
68+
{% endhighlight %}
4169

42-
//TODO
70+
`build.gradle` znajdujący się w każdym module pozwala na specyficzną konfiguracje dla danego modułu uzupełniając lub nadpisując definicję `build.gradle` projektu, np. zależności, wtyczki czy konfiguracja wersji i wariantów budowanej paczki `APK`
71+
72+
{% highlight gradle %}
73+
//apply plugins to build and makes android block available to build options
74+
apply plugin: 'com.android.application'
75+
apply plugin: 'kotlin-android'
76+
apply plugin: 'kotlin-android-extensions'
77+
78+
// Configure Android specific build options
79+
android {
80+
81+
// Define some compile and build properties
82+
compileSdkVersion 28
83+
84+
// Specify default settings and entries for all build variant
85+
defaultConfig {
86+
applicationId "pl.androidcode.app"
87+
minSdkVersion 21
88+
targetSdkVersion 28
89+
versionCode 1
90+
versionName "1.0"
91+
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
92+
}
93+
94+
// Configure multiple build types like apply Proguard for release and make debug debuggable
95+
buildTypes {
96+
release {
97+
minifyEnabled false
98+
debuggable false
99+
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
100+
}
101+
debug {
102+
minifyEnabled false
103+
debuggable true
104+
signingConfig signingConfigs.debug
105+
}
106+
}
107+
108+
// Configure multiple product flavors, override defaultConfig block settings
109+
// At least one flavorDimensions must be declared, they combine multiple flavors
110+
flavorDimensions "version"
111+
productFlavors {
112+
free {
113+
dimension "version"
114+
applicationId 'pl.androidcode.app.free'
115+
}
116+
paid {
117+
dimension "version"
118+
applicationId 'pl.androidcode.app.paid'
119+
}
120+
}
121+
122+
// Configure different APK builds that each contains only needed code and resources for density and abi
123+
// Notice that every build must have unique version code for store
124+
splits {
125+
density {
126+
enable true
127+
exclude "ldpi"
128+
}
129+
abi {
130+
enable true
131+
universalApk true
132+
}
133+
}
134+
}
135+
136+
// Provide dependencies needed only for module itself
137+
dependencies {
138+
//local binaries
139+
implementation fileTree(dir: 'libs', include: ['*.jar'])
140+
141+
//remote binaries
142+
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version'
143+
implementation 'androidx.appcompat:appcompat:1.0.2'
144+
implementation 'androidx.core:core-ktx:1.0.2'
145+
146+
//unit and instrumental tests
147+
testImplementation 'junit:junit:4.12'
148+
androidTestImplementation 'androidx.test:runner:1.2.0'
149+
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
150+
}
151+
{% endhighlight %}
152+
153+
`gradle.properties` określa ustawienia `Gradle` dla całego projektu, np. maksymalna wielkość stosu deamona czy użycie artefaktów `AndroidX`
154+
155+
{% highlight properties %}
156+
org.gradle.jvmargs=-Xmx1536m
157+
android.useAndroidX=true
158+
android.enableJetifier=true
159+
kotlin.code.style=official
160+
{% endhighlight %}
161+
162+
`local.properties` konfiguruje lokalne właściwości środowiska dla systemu kompilacji, np. ścieżka instalacji `Sdk`
163+
164+
{% highlight properties %}
165+
sdk.dir=C\:\\Android\\Sdk
166+
{% endhighlight %}

0 commit comments

Comments
 (0)