【发布时间】:2013-05-18 12:57:43
【问题描述】:
我在通过 gradle 自动将依赖项添加到 eclipse android 项目时遇到问题。 我对gradle只有一点经验。到目前为止,我已经用 gradle 构建了两个 java 项目。一个罐子和一个可执行罐子。这没有问题。 我已经使用 eclipse 插件生成了 eclipse 项目并将依赖项添加到构建路径中。我向 gradle 脚本添加了新的依赖项,使用 gradle eclipse 启动了 gradle,更新了我的项目,并且依赖项存在于构建路径中,我可以使用它们。这是该脚本的重要部分。
apply plugin: 'java'
apply plugin: 'eclipse'
repositories {
mavenCentral()
}
dependencies {
compile 'commons-io:commons-io:2.4'
}
所以,现在我尝试将它与 android 插件结合使用。这是我的洞 gradle 脚本。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
apply plugin: 'eclipse'
repositories {
mavenCentral()
}
dependencies {
compile 'org.apache.commons:commons-lang3:3.1'
}
android {
compileSdkVersion 17
buildToolsVersion "17"
defaultConfig {
minSdkVersion 14
targetSdkVersion 17
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('tests')
}
}
如果我使用 gradle eclipse 什么都不会发生。然后我发现java插件将依赖项添加到构建路径中。所以我加了
apply plugin: 'java'
到它并得到java插件与android插件不兼容的错误。 然后我找到了一个解决方案,将jars自动复制到项目的lib文件夹中。
def libDir = file('libs')
task copyLibs(type: Copy) {
doFirst {
libDir.mkdirs()
}
from configurations.runtime
into libDir
}
但是这个任务也需要配置运行时的 java 插件。 我需要 android 插件来创建 apk 文件,因此删除 android 插件不是解决方案。 有人知道是否可以将依赖项添加到与 android 插件兼容的 ecipse 项目中的构建路径或 lib 文件夹中?
编辑: 我的一个想法是将 java-plugin 放到 eclipse-plugin 中,这样只有在应用 eclipse 插件时才会应用它。像这样的:
apply plugin: 'eclipse'
eclipse{
apply plugin: 'java'
}
但我仍然收到 java 和 android 插件不兼容的错误。 也许我理解 gradle 错误,但通常只有在我启动 eclipse 插件而不是 android 插件时才应该应用 java 插件。恐怕我对 gradle 的理解和经验还不够好,无法通过这种方式解决或理解为什么不可能。
【问题讨论】:
-
您好,我无法让您的解决方案发挥作用。请检查一下:stackoverflow.com/questions/28780426/…?