Tag: gradle

如何添加Gradle Kotlin-dsl的新配置

通过gradle-groovy可以创建一个新的配置: configurations { explode } dependencies { explode (group: 'org.apache.samza', name: 'samza-shell', ext: 'tgz', classifier: 'dist', version: "$SAMZA_VERSION") } 但我不知道如何用kotlin-dsl来做到这一点。 我试过了: val explode by configurations dependencies { explode(group = "org.apache.samza", name = "samza-shell", ext = "tgz", classifier = "dist", version = samzaVersion) // "explode"(group = "org.apache.samza", name = "samza-shell", ext = "tgz", classifier = "dist", […]

Android Studio上的Kotlin(非Android)项目的ClassNotFoundException错误

我试图用Android Studio 2.3.3创建一个正常的Kotlin项目(非Android,只是桌面/命令行项目)。 我按照这里列出的步骤执行,但是在这里我分享了不同的build.gradle内容。 实际上,我用IntelliJ Community Edition(2017.2)生成一个新项目后,从build.gradle文件中复制的build.gradle内容。 然后,我创建一个配置,以便能够在桌面上运行它,正确设置如主类,工作目录和模块的类路径。 你可以在下面的图片中看到。 以下是我的项目文件结构 然后我同步该项目,它成功。 但是当我尝试运行该项目时出现错误。 我得到了以下错误。 "/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java" -Didea.launcher.port=7534 "-Didea.launcher.bin.path=/Applications/Android Studio.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/charsets.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/localedata.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/sunec.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/jce.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/jsse.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/management-agent.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/resources.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/rt.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/lib/dt.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/lib/jconsole.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/lib/sa-jdi.jar:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/lib/tools.jar:/Users/haxpor/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar:/Users/haxpor/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre7/1.1.4-2/272a21c30432c943d618008fbbd34762eb0d6c8a/kotlin-stdlib-jre7-1.1.4-2.jar:/Users/haxpor/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.1.4-2/fec983b2608a8a91a1b87dba18d247d692cf6b51/kotlin-stdlib-1.1.4-2.jar:/Users/haxpor/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre8/1.1.4-2/168cc3f45c307edda6c867dd0635a7d451257551/kotlin-stdlib-jre8-1.1.4-2.jar:/Applications/Android Studio.app/Contents/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain io.wasin.testjavaapp.Main Exception in thread "main" java.lang.ClassNotFoundException: io.wasin.testjavaapp.Main at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) […]

如何用gradle-script-kotlin配置spring-boot重新打包

通过定期的gradle,我可以像这样配置一个主类: bootRepackage { mainClass = 'demo.Application' } 用gradle-script-kotlin,这是行不通的。 我想我需要以某种方式使用Project.configure内联函数,但我已经尝试了一些不同的东西,我一直无法使其工作。

Kotlin的gradle插件不适用于自定义源集(JMH)

拥有Gradle设置的Kotlin项目: apply plugin: 'kotlin' apply plugin: 'kotlin-kapt' dependencies { kapt 'org.openjdk.jmh:jmh-generator-annprocess:1.18' … } 把基准放在src / main / kotlin下工作没有问题。 但是当我为JMH添加一个自定义的源代码集: sourceSets { jmh { compileClasspath += sourceSets.test.runtimeClasspath runtimeClasspath += sourceSets.test.runtimeClasspath } } 并将src / main / kotlin的基准测试版移至src / jmh / kotlin ,执行基准测试失败: Exception in thread "main" java.lang.RuntimeException: ERROR: Unable to find the resource: /META-INF/BenchmarkList at org.openjdk.jmh.runner.AbstractResourceReader.getReaders(AbstractResourceReader.java:98) […]

使用gradle将“提供的”配置添加到kotlin / java库

我有一个java库,我已经使用gradle添加了“提供”配置。 apply plugin: 'java' apply plugin: 'idea' apply plugin: 'checkstyle' apply from: file('../gradle/gradle-mvn-push.gradle') sourceCompatibility = JavaVersion.VERSION_1_7 targetCompatibility = JavaVersion.VERSION_1_7 repositories { mavenCentral() } group = GROUP version = VERSION_NAME configurations { provided } sourceSets { main.compileClasspath += configurations.provided test.compileClasspath += configurations.provided test.runtimeClasspath += configurations.provided } javadoc.classpath += configurations.provided idea { module { scopes.PROVIDED.plus += [configurations.provided] […]

Android Studio 3.0中的Plain Kotlin模块,`api`不支持?

在Gradle插件3.0(Android Studio 3.0)中开始, compile命令已被替换为api和implementation 。 这里解释https://blog.mindorks.com/implementation-vs-api-in-gradle-3-0-494c817a6fa 但是,对于下面的纯Kotlin模块,我不能使用api 。 即当我执行同步时,下面的代码将会有错误 apply plugin: 'kotlin' dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) api "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" } 错误是 Could not find method api() for arguments [org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-4] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. Open File` 我不得不使用“不推荐” compile 。 为什么在纯粹的kotlin模块中不支持api ?

如何用Kotlin和Tornado FX设置Gluon应用程序

我目前尝试将以下技术结合起来: 胶子(手机) Gradle(依赖于Gluon,因为他们依赖它) Kotlin(因为这是一个很好的语言,我想深入) 龙卷风FX(我想这是JavaFX,Anko是Android的) 问题是,我对Intellij-IDEA相对比较陌生,并且在正确设置它的时候遇到了问题,尽管我认为build.gradle文件是足够合适的。 这是我的build.gradle看起来如此之远: buildscript { ext.kotlin_version = '1.0.6' repositories { jcenter() mavenCentral() } dependencies { classpath 'org.javafxports:jfxmobile-plugin:1.2.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } apply plugin: 'org.javafxports.jfxmobile' apply plugin: 'kotlin' // apply plugin: 'com.android.application' // apply plugin: 'kotlin-android' repositories { jcenter() mavenCentral() maven { url 'http://nexus.gluonhq.com/nexus/content/repositories/releases' } } mainClassName = 'eu.dzim.test.Main' dependencies { compile […]

没办法编译我自己的kotlin库

随着谷歌I / O 2017年,我决定学习kotlin开发我自己的库在Android的kotlin。 这个库允许从OpenWeatherMap API获取信息。 项目链接: https : //github.com/sokarcreative/EasyOWM 有什么问题 ? 我只是不能编译我的图书馆。 我尝试了一切。 我已经编译了分叉的项目,它工作,但没有办法与我自己的图书馆。 我用这些gradlew脚本创建了一个新项目: – 项目gradle allprojects { repositories { … maven { url 'https://jitpack.io' } } } – 模块gradle dependencies { … compile 'com.github.sokarcreative:easyowm:master-SNAPSHOT' } 错误: Failed to resolve: com.github.sokarcreative:easyowm:master-SNAPSHOT 我知道这是一个反复出现的问题,但没有办法解决这个问题。 编辑:以防万一,图书馆工作。 这是我的银河选项卡S3: EasyOWM截图的结果

Instrumentation测试无法在包含Kotlin文件的Android库模块中运行

这基本上是在标题中,我不能在包含Kotlin类的Android库模块中运行任何检测测试。 这与测试是否依赖Kotlin类无关。 这里是我可以重现这个问题的最简单的步骤: 使用默认设置创建一个新的Android库项目 只要检查,运行示例仪表测试,运行良好 添加一个Kotlin类 运行示例测试,仍然运行良好 再次添加一个全新的默认设置的Android库模块 运行示例仪器测试,工作正常 添加一个Kotlin文件,只包含一个class Something 尝试再次运行检测测试,现在构建失败,并显示以下消息: Error:Execution failed for task ':mylibrary:transformClassesWithDexForDebugAndroidTest'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lco/zsmb/example/mylibrary/Something;

Kotlin原始字符串抛出空白错误

我正在用kotlin创建一个gradle插件,并且插入一些ascii艺术。 我没有试图逃避一大堆反斜杠,而是决定使用原始的字符串,但是现在我遇到奇怪的无名的错误,只要我的行包含2个竖线。 以下是一些示例代码: println(""" ] |___1 ] ||__2 ] |||_3 ] ||||4 """.trimMargin("]")) 这会导致我的消息日志中出现以下错误: Error:__2 Error:|_3 Error:||4 有谁知道为什么这个错误发生? 我已经覆盖了保证金字符,所以我不明白为什么竖线仍然影响原始字符串。 奇怪的是,它只发生在第二棒之后。 这是项目的一个纯粹的美容部分,所以如果我不得不删除它,这不是一个大问题。 任何见解都被赞赏! 编辑: 我已经重新启动我的电脑和IDE,现在我提供的示例字符串不会导致这些错误。 然而,我的ASCII字符串仍然这样做,我会提供一个错误的艺术片段。 我也使用kotlin 1.1.0,并试图降级到1.0.6,仍然看到错误。 新的示例代码: println(""" ] \ ^ /^ ] \ / \ // \ ] \ |\___/| / \// .\ ] \ /OO \__ / // | \ \ *—-* […]