Dor*_*hal 5 intellij-idea android-gradle-plugin
我试图让我现有的Android项目使用gradle和IntelliJ 12.以前我让它与maven一起工作但是它似乎没有像gradle那样灵活,而且我认为我知道的是我需要更少子文件夹.
我的Android项目分为干净的java库(:core)和实际的Application(:android).这两个项目都在我的主项目文件夹中.
~-+MainProject
|--+core
| L--build.gradle
|--+android
| L--build.gradle
|--build.gradle
L--settings.gradle
Run Code Online (Sandbox Code Playgroud)
我认为让gradle工作的理想解决方案是将(:core)和(:android)项目视为嵌套项目,这意味着我可以简单地使用我的cmd在MainProject源文件夹中启动gradle任务.
但是我想出了不同的问题:
这是*.gradle配置
MainProject: - settings.gradle
include ':core', ':android'
Run Code Online (Sandbox Code Playgroud)
- build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
subprojects {
repositories {
mavenLocal()
maven { url "http://repo.maven.apache.org/maven2" }
}
}
Run Code Online (Sandbox Code Playgroud)
:core - build.gradle
apply plugin: 'java'
dependencies {
testCompile 'junit:junit:4.11'
testCompile 'org.mockito:mockito-core:1.9.5'
}
Run Code Online (Sandbox Code Playgroud)
:机器人
apply plugin: 'android'
repositories {
mavenCentral()
}
dependencies {
compile project(":core")
compile 'com.google.android:android:4.1.1.4'
instrumentTestCompile 'junit:junit:4.11'
instrumentTestCompile 'org.mockito:mockito-core:1.9.5'
instrumentTestCompile 'com.google.dexmaker:dexmaker:1.0'
instrumentTestCompile 'com.google.dexmaker:dexmaker-mockito:1.0'
instrumentTestCompile 'com.jayway.android.robotium:robotium-solo:3.6'
}
/* ... androidSettings
Run Code Online (Sandbox Code Playgroud)
我希望有人可以帮助我
MFG Dornathal
好吧,所以你有正确的想法,但你仍然需要一些改变.
您的根build.gradle文件应如下所示:
subprojects {
repositories {
mavenCentral()
}
}
Run Code Online (Sandbox Code Playgroud)
mavenLocal()如果您使用的是本地安装的仓库,则只需要包括.大多数人没有,你的项目中没有任何东西表明你需要一个.mavenCentral() 可用于替换您正在使用的maven URL.build.gradle.您settings.gradle和您build.gradle的核心项目都很好.
build.gradle然而,您的Android项目需要一些更改:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
dependencies {
compile project(":core")
instrumentTestCompile 'com.jayway.android.robotium:robotium-solo:3.6'
}
Run Code Online (Sandbox Code Playgroud)
compile 'com.google.android:android:4.1.1.4'.junit.它由SDK提供,因此我们将使用它.需要注意的一点是SDK只包含JUnit 3.mockito,dexmaker除非我们实际使用它进行Android测试.如果它仅用于java库的测试,我们在这里不需要它.回答你的问题:
最后一点说明.Intellij 12无法处理Gradle Multi-project构建.您需要切换到Android Studio或Intellij 13.
| 归档时间: |
|
| 查看次数: |
2482 次 |
| 最近记录: |