似乎eclipse插件使用以下机制来执行此操作:
apply plugin: 'java'
apply plugin: 'eclipse'
eclipse {
classpath {
downloadSources=true
}
}
Run Code Online (Sandbox Code Playgroud)
但我找不到想法插件的相应选项.我错过了什么?
这是build.gradle文件:
apply plugin: 'groovy'
apply plugin: 'idea'
repositories {
mavenCentral()
mavenRepo name: "Grails", url: "http://repo.grails.org/grails/repo/"
}
dependencies {
groovy 'org.codehaus.groovy:groovy-all:2.0.4'
compile 'org.slf4j:slf4j-log4j12:1.6.6', 'postgresql:postgresql:9.1-901.jdbc4', 'net.sourceforge.nekohtml:nekohtml:1.9.16'
['core', 'hibernate', 'plugin-datasource', 'plugin-domain-class'].each { plugin ->
compile "org.grails:grails-$plugin:2.1.0"
}
}
idea {
module {
downloadJavadoc = true
downloadSources = true
}
}
// Fat Jar Option (http://docs.codehaus.org/display/GRADLE/Cookbook#Cookbook-Creatingafatjar)
jar {
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } …Run Code Online (Sandbox Code Playgroud) 我的团队正在开发一个Android库,用于我们开发的一些示例应用程序.该库创建为AAR文件.这是它的build.gradle
apply plugin: 'com.android.library'
apply from: 'deploy.gradle'
android {
compileSdkVersion 20
buildToolsVersion '20.0.0'
packagingOptions {
exclude 'LICENSE.txt'
exclude 'LICENSE'
exclude 'NOTICE'
}
defaultConfig {
// Excluded for brevity
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
abortOnError false
// if true, check all issues, including those that are off by default
checkAllWarnings true
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v13:20.0.+'
compile 'com.google.android.gms:play-services:5.+'
compile 'com.squareup.retrofit:retrofit:1.6.1'
}
Run Code Online (Sandbox Code Playgroud)
这是app的build.gradle的依赖项部分
dependencies {
compile fileTree(dir: …Run Code Online (Sandbox Code Playgroud) 使用Android工作室版本0.1.3和android gradle插件的0.4.2版本.我注意到它没有为我的任何依赖项提供源代码.我之前在eclipse上使用了第三方android插件,并且通常使用maven你也可以配置它来执行此操作.任何人都知道如何启用Android插件或Android工作室来获取工件的源和javadoc?
我遇到的另一个问题是我为这样的提供范围创建了一个配置
configurations {
provided
}
android.applicationVariants.each { variant ->
variant.javaCompile.classpath += configurations.provided
}
Run Code Online (Sandbox Code Playgroud)
哪个在gradle中完美运行,但android studio不会将其添加到其类路径中.有谁知道怎么解决这个问题?我试过像这样的想法gradle插件
idea {
module {
downloadJavadoc = true
downloadSources = true
scopes.PROVIDED.plus += configurations.provided
}
}
Run Code Online (Sandbox Code Playgroud)
但是在尝试修改范围时没有java插件它不起作用.此外,下载javadoc和源代码的设置也不起作用
我真的很失望android工作室和新的gradle构建系统如何组合在一起,真的想切换但是按照这个速度它只是不现实
我在下面发布了一个带有build.gradle的工件:
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file://maven")
pom.groupId = 'com.totvnow'
pom.artifactId = 'tonedetect-lib'
pom.version = '0.1.0'
}
}
}
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
artifacts {
archives androidJavadocsJar
}
我成功地在repo目录中获取了javadoc文件:
tonedetect-lib-0.1.0-javadoc.jar tonedetect-lib-0.1.0-javadoc.jar.md5 tonedetect-lib-0.1.0-javadoc.jar.sha1
但是当我在另一个模块的build.gradle中使用它时:
buildscript {
repositories {
jcenter()
maven { url 'somepath\\maven' }
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
}
}
allprojects {
repositories {
jcenter()
maven { url 'somepath\\maven' …