Gradleを介してEclipse Androidプロジェクトに依存関係を自動的に追加する際に問題があります。私はgradleの経験が少ししかありません。これまで、gradle を使用して 2 つの Java プロジェクトをビルドしました。1 つの jar と実行可能 jar。これは問題なく動作します。Eclipse プラグインを使用して Eclipse プロジェクトを生成し、依存関係をビルド パスに追加しました。新しい依存関係をgradleスクリプトに追加し、gradle eclipseでgradleを開始し、プロジェクトを更新し、依存関係がビルドパスに存在するので、それらを使用できます。ここがそのスクリプトの重要な部分です。
apply plugin: 'java'
apply plugin: 'eclipse'
repositories {
mavenCentral()
}
dependencies {
compile 'commons-io:commons-io:2.4'
}
というわけで、androidプラグインと組み合わせてみました。これが私のホールグラドルスクリプトです。
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プラグインと互換性がないというエラーが発生しました。次に、jar ファイルをプロジェクトの lib フォルダーに自動的にコピーするソリューションを見つけました。
def libDir = file('libs')
task copyLibs(type: Copy) {
doFirst {
libDir.mkdirs()
}
from configurations.runtime
into libDir
}
ただし、このタスクには、configuration.runtime 用の Java プラグインも必要です。apk ファイルを作成するには Android プラグインが必要なので、Android プラグインを削除することは解決策ではありません。Androidプラグインと互換性のあるEclipseプロジェクトのビルドパスまたはlibフォルダーに依存関係を追加できるかどうか、誰か考えがありますか?
編集: 私のアイデアの 1 つは、java-plugin を eclipse-plugin に配置して、Eclipse プラグインが適用されるときにのみ適用されるようにすることでした。このようなもの:
apply plugin: 'eclipse'
eclipse{
apply plugin: 'java'
}
しかし、Java と Android のプラグインに互換性がないというエラーが表示されます。gradleが間違っていることを理解しているかもしれませんが、通常、AndroidプラグインではなくEclipseプラグインを起動するときにのみJavaプラグインを適用する必要があります。私のgradleの理解と経験は、この方法でこれを解決したり、なぜそれが不可能なのかを理解するのに十分ではありません。