Tag: gradle

如何跨多个Gradle项目共享样板Kotlin配置?

在Gradle项目中, 典型的Kotlin配置是非常模板化的,我正在寻找一种将其抽象为外部构建脚本的方式,以便它可以被重用。 我有一个工作的解决方案(下面),但是这感觉就像是一个黑客,因为kotlin gradle插件不能用这种方式工作。 从外部脚本中应用任何非标准插件是很麻烦的,因为你不能通过id来应用插件 apply plugin: 'kotlin'将导致Plugin with id 'kotlin' not found. 简单的(通常)解决方法是通过插件的完全限定的类名应用,即 apply plugin: org.jetbrains.kotlin.gradle.plugin.KotlinPluginWrapper 在这种情况下抛出一个很好的小异常,表明插件可能不是这样调用的: Failed to determine source cofiguration of kotlin plugin. Can not download core. Please verify that this or any parent project contains 'kotlin-gradle-plugin' in buildscript's classpath configuration. 所以我设法将一个插件(只是真正的插件的修改版本)一起破解,迫使它从当前的buildscript中找到插件。 kotlin.gradle buildscript { ext.kotlin_version = "1.0.3" repositories { jcenter() } […]

具有Gradle多项目的Kotlin模块

Kotlin摆脱了模块级可视性的包级可见性。 我认为这是一个好主意,除了很难在Gradle多项目设置中使用多个Kotlin模块。 我使用的是Android Studio 2.2和Kotlin 1.0.4的Gradle Wrapper 3.1 这是我的结构: 项目 —- myapp(android应用程序) —- lib(android库) —-普通(android库) // myapp/build.gradle dependencies { compile project(':lib') } // lib/build.gradle dependencies { compile project(':commons') } 当我尝试同步或建立我得到以下错误: 错误:配置项目':lib'时发生问题。 包含在依赖关系解析中后,不能更改配置“lib:default”的依赖关系。 唯一有效的工作是确保模块名称的词法顺序与它们需要内置的顺序相匹配,这是荒谬的,而不是一个合适的解决方案。 我知道我可以将lib和commons作为工件发布,但我真的不希望这样做。 任何人有任何建议?

转换Android项目使用Gradle脚本Kotlin

我想将我的Android项目中的build.gradle文件从Groovy转换为使用Gradle脚本Kotlin的Kotlin 。 最好我希望他们都在Kotlin,但是如果有一些限制,那么尽可能多。 让我们假设我刚刚从Android Studio“新应用程序”模板创建了一个空项目( minSdkVersion 15 ,使用AppCompat)。 我需要采取哪些步骤来将此类项目转换为Gradle Script Kotlin。 我希望这对我(和其他人)来说应该是一个很好的起点,我可以处理转换我自己拥有的任何自定义逻辑。

如何在Gradle中设置Kotlin源代码?

在使用Gradle构建Java或Groovy时,可以像这样定义源编码: compileJava { options.encoding = 'UTF-8' } compileTestJava { options.encoding = 'UTF-8' } compileGroovy { groovyOptions.encoding = 'UTF-8' } compileTestGroovy { groovyOptions.encoding = 'UTF-8' } 但是,类似的方法与Kotlin不起作用: compileKotlin { kotlinOptions.jvmTarget = '1.8' kotlinOptions.encoding = 'UTF-8' } 它失败,错误: * What went wrong: A problem occurred evaluating root project 'backend'. > No such property: encoding for class: org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptionsImpl […]

java.lang.VerifyError用kotlin创建一个gradle任务

我尝试用kotlin写一个gradle任务,这是我的代码: GreetingTask.kt class GreetingTask : DefaultTask() { @TaskAction fun greet() { println("greet!") } } 的build.gradle buildscript { repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:0.12.613" } } apply plugin: "kotlin" dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib:0.12.613" compile gradleApi() } GreetingTaskTest class GreetingTaskTest { @Test public fun canAddTaskToProject() { val project = ProjectBuilder.builder().build() val task = project.task(hashMapOf("type" to […]

错误:与依赖项冲突com.google.code.findbugs:jsr305'

我在Android Studio 2.2预览版1中使用Android应用程序和使用Google消息传递的后端模块创建了一个新项目。 这是应用程序文件 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.xxx.xxx" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha1' compile 'com.google.android.gms:play-services-gcm:9.0.0' testCompile 'junit:junit:4.12' […]

Intellij IDEA调试器不能用于Gradle Vert.X项目

我正在开发一个使用Gradle构建工具使用Vert.X框架的项目。 我遇到的问题是IntelliJ中的断点根本无法以我尝试过的方式工作。 这里是我在Gradle中使用的Vert.X的运行配置: run { args = [ 'run', mainVerticleName, "-conf", confPath, "–redeploy=$project.ext.watchForChange", "–launcher-class=$mainClassName", "–on-redeploy=$project.ext.doOnChange" ] } 因此,使用Gradle完成部署,运行没有任何问题, IntelliJ调试器已连接,但断点不起作用 。 我试图使其工作的方式: 1)Gradle运行配置。 以下是Intellij IDEA的运行配置: 试图使用远程调试工具,启动应用程序与以下VM选项: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 但是这不起作用。 2)应用程序配置: 在这种情况下,我不能启动项目,因为我在启动时收到以下消息: Error: Could not find or load main class io.vertx.core.Launcher Vert.X Core库在类路径中,配置看起来是正确的,所以不能得到是的问题。 该项目的源代码是公开的,可以在GitHub上GitHub : vertx-gradle这个架构起动 Vert.X版本 – 3.4.0。 Gradle版本 – 3.4.1。 IntelliJ IDEA版本 – 2016.3.5。 OS – […]

Gradle脚本Kotlin和dependencyManagement

我正尝试将Spring Cloud Stream应用程序构建脚本移植到Kotlin。 到目前为止,除了依赖关系管理块之外,这么好。 网上很难找到任何东西。 样本也不包括该主题。 如何将下面的块转换为build.gradle.kts ? 谢谢。 dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:Camden.SR2" } }

使用kotlin&greendao的Android Studio 3.0 Proguard将返回ClassLookupException

完全的例外是: 错误:java.lang.RuntimeException:java.lang.RuntimeException:com.android.build.gradle.shrinker.ClassLookupException:无效的类引用:java / rmi / server / RemoteStub 错误:java.lang.RuntimeException:com.android.build.gradle.shrinker.ClassLookupException:无效的类引用:java / rmi / server / RemoteStub 错误:com.android.build.gradle.shrinker.ClassLookupException:无效的类引用:java / rmi / server / RemoteStub 我正在使用Kotlin和GreenDao。 我的gradle: apply plugin: 'org.greenrobot.greendao' apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.xxx.xxx" minSdkVersion 19 targetSdkVersion 25 versionCode 4 versionName "0.0.0.3" testInstrumentationRunner […]

未解决的参考:kotlinx – Kotlin 1-0-0-RC-1036

我正在一个Android应用程序工作,前几天我更新了我的Kotlin版本从1.0.0-beta-1103到候选版本1.0.0-rc-1036 ,现在我无法运行我的应用程序Kotlin Android扩展。 我使用apply plugin: 'kotlin-android-extensions'就像官方博客所说: http apply plugin: 'kotlin-android-extensions'我的应用程序不能识别任何布局的任何视图。 这是在控制台上显示的内容: 错误:(20,8)未解决的参考:kotlinx 错误:执行任务':app:compileDebugKotlin'失败。 编译错误。 查看日志了解更多详情 请帮助我,我正在失去理智! 更新: 这是我在全球build.gradle buildscript { ext { kotlin_version = "1.0.0-rc-1036" } repositories { jcenter() maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'com.android.tools.build:gradle:1.5.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // The Fabric Gradle plugin uses an open ended version to react // quickly […]