用gradle編譯任意結構的Android項目

## 需求java

* 繼續用`Eclipse`項目的結構,可是使用`gradle`編譯,或者說任意的項目結構進行編譯。android

## 解決方案app

1. Android studio的項目結構
1. Android Studio 整個項目是一個project
2. Project中有不少的module
3. module的類型能夠有不少種,好比com.android.application是能夠運行的應用程序、com.android.library是Android項目的library.
2. Gradle的編譯原則
1. 每一個project目錄下放置兩個重要的配置文件
1. settings.gradle. 此文件是配置project中有的module定論的。有多個個module,路徑是什麼,叫什麼名字
2. build.gradle 此文件是配置gradle全局的一些設置,好比maven庫的路徑、
2. 每一個module目錄下都有一個build.gradle
1. 此文件會標記好比當前是什麼類型(參見1.3)
2. 簽名混淆打多渠道包以及
3. 包依賴
4. 其它的gradle task

<!--more-->
3. 配置過程
1. 在project中建立settings.gradle、build.gradle兩個文件
1. project中的settings.gradle中添加以下類型,對應爲當前目錄路徑,其中用`:`分隔。下面代碼中module0表示當前根目錄中有一個module0,module1表示在根目錄下aaa文件夾下bbb文件夾下的module1,根目錄下ddd文件夾下的module2。

```
include 'module0'
include 'aaa:bbb:module1'
include 'ddd:module2'maven

```

2. build.gradle中填入以下


```

buildscript {
repositories {
mavenLocal()ide

maven {
url "http://your own maven url"
}
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
}
}
allprojects {
repositories {
mavenLocal()gradle

maven {
url "http://your own maven url"
}
jcenter()
}
}ui


```
2. 在module中添加build.gradle文件,這裏能夠配置如下內容設置文件夾:

```
sourceSets {
main {
java.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jni.srcDirs = ['jni']
jniLibs.srcDirs = ['libs']
manifest.srcFile 'AndroidManifest.xml'
}
}
```



4. 其它
1. AndroidManifest.xml的合併
2. 資源文件的合併
3. lint的檢查
4. mutilDex
5. uploadTask
6. 依賴文件的添加
5. 未完待續url


## Q&Aspa

```
finished with non-zero exit value 3 xml

`````` compile fileTree(dir: 'libs', include: ['*.jar']) 換成 provided fileTree(dir: 'libs', include: ['*.jar'])

相關文章
相關標籤/搜索