我有一个现有的Android项目,其结构如下:
- ProjectName
-- AndroidManifest.xml
-- local.properties
-- project.properties
-- assets
-- libs (containing all jars)
-- modules (containing all library projects my project depends on)
-- res
-- src
---- com/namespace/projectname (all my classes including main activity are here)除了Android Studio IDE默认提供的构建系统之外,我没有使用任何特定的构建系统来构建我的项目(尽管该项目最初是使用IntelliJ CE创建的。
我想在android插件中使用Gradle,并在我的构建过程中做一些工作。为了实现这一点,我尝试了几种配置,但每次都未能成功完成构建。
在这种情况下,推荐的方法是什么?我应该改变我的项目结构吗?或者,是否可以使用现有结构配置gradle?
任何帮助都将不胜感激。
谢谢!
发布于 2013-06-27 06:32:09
在这种情况下,推荐的方法是什么?我应该改变我的项目结构吗?或者,是否可以使用现有结构配置gradle?
使用您现有的结构配置gradle是完全可能的。
您需要向每个库项目添加一个build.gradle。您还需要在项目根文件夹中添加一个build.gradle和一个settings.gradle文件。
应该是这样的:
ProjectName
build.gradle <<<<<<
settings.gradle <<<<<<
AndroidManifest.xml
local.properties
project.properties
assets
res
src
libs
modules
module1
build.gradle <<<<<<
module2
build.gradle <<<<<<
module3
build.gradle <<<<<<在settings.gradle中,你需要包括所有的项目文件夹,如果你的主项目在一个子文件夹中,它也应该被包括在内,但本例中没有。
settings.gradle应该如下所示:
include ':modules:module1', ':modules:module2', ':modules:module2'主项目的build.gradle需要有:
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':modules:module1')
compile project(':modules:module2')
compile project(':modules:module3')
}发布于 2013-06-26 23:52:17
只需在您的计算机上安装gradle,并确保所有路径都是正确的。
然后在你的项目文件夹中创建一个"build.gradle“文件。
下面是一个您可以从以下内容开始的基本示例:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4.+'
}
}
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':yourModuleName')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 10
targetSdkVersion 16
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('yourTestRoot')
}
}要像我在dependenciey块中那样寻址你的模块,你必须创建一个settings.gradle文件并引用你的模块作为项目。因为我假设它们也有一个自定义布局,所以你也必须在模块文件夹上制作build.gradle文件。
对于android的设置,你应该访问gradle documentation,这里没有android专用的。
https://stackoverflow.com/questions/17323858
复制相似问题