buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.9.66'
}
}
apply plugin: "kotlin"
repositories {
mavenCentral()
}
dependencies {
compile 'org.jetbrains.kotlin:kotlin-stdlib:0.9.66'
}
jar {
manifest {
attributes 'Main-Class': 'com.loloof64.kotlin.exps.ExpsPackage'
}
}
这是我的com.loloof64.kotlin.exps.multiDeclarations.kt
package com.loloof64.kotlin.exps
class Person(val firstName: String, val lastName: String) {
fun component1(): String {
return firstName
}
fun component2(): String {
return lastName
}
}
fun main(args: Array < String > ) {
val(first, last) = Person("Laurent", "Bernabé")
println("First name : $first - Last name : $last")
}
当我从终端(java-jar myjar.jar)启动jar时,我得到以下stacktrace,告诉我kotlin反射库类丢失了,而且实际上它们还没有添加到jar中。我似乎错过了最终jar中的kotlin-compiler工件类,也错过了kotlin-stdlib源代码,但我不知道如何适应gradle构建。
$> java -jar build/libs/kotlin_exps.jar
Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/reflect/jvm/internal/InternalPackage
at com.loloof64.kotlin.exps.ExpsPackage.<clinit>(MultiDeclarations.kt)
Caused by: java.lang.ClassNotFoundException: kotlin.reflect.jvm.internal.InternalPackage
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
我使用的是Kotlin 0.9.66和gradle 2.1
添加插件application
,然后将mainclassname
设置为
mainClassName = '[your_namespace].[your_arctifact]Kt'
例如,假设您在名为main.kt
的文件中放置了以下代码:
package net.mydomain.kotlinlearn
import kotlin
import java.util.ArrayList
fun main(args: Array<String>) {
println("Hello!")
}
您的build.gradle
应为:
apply plugin: 'kotlin'
apply plugin: 'application'
mainClassName = "net.mydomain.kotlinlearn.MainKt"
我刚刚将我的构建脚本移到了使用 gradle-script-kotlin,使用 gradle 3.4 和 gradle-script-kotlin 0.6。 我可以让构建脚本生成一个jar,但是清单不包括主类名。根据我找到的其他帖子,我尝试过以KT和Kt结尾的主类名。 构建脚本如下所示: 我还想创建一个包含运行时依赖项的胖jar,我可以看到很多关于时髦构建脚本的示例,但对于gradle-scrip
我已经找了两天来解决这个问题,但我没有找到解决办法。首先我想构建fat-jar,然后我放弃了它看起来更复杂,所以我开始构建普通的可执行Jar。我正在用Gradle插件在NetBeans 8.2中构建一些程序(http://plugins.NetBeans.org/plugin/44510/gradle-support) 我的项目结构是这样的: 项目结构 我是一个比较新的年级,我使用它不到一个月。我
这是用Gradle构建Kotlin+Java9项目的后续。在链接后使用Groovy的Gradle。在我的情况下,使用Kotlin DSL。 基本上我有一个梯度项目与以下结构(只有相关的内容在这里): 问题:如何让链接的post(或任何其他解决方案)中提供的解决方案运行,以便使用Java9/10环境编译带有Gradle的Kotlin DSL的Kotlin项目?
这个问题询问如何用Gradle构建SourceJar。我如何用Gradle Kotlin DSL做同样的事情? 分级代码为:
不管怎样,现在这个构建由于这个错误而失败,我不知道如何解决它: 错误:package some.package.impl不存在 导入一些。package.impl.roundaboutimpl; 提前感谢!
我有一个用Kotlin实现的Gradle插件,它是用gradle kotlin DSL构建脚本构建的。这工作正常。构建脚本如下,位于项目的 buildSrc 目录中: 现在我想从Kotlin插件代码中调用同一个buildSrc源代码树中的一个现有Groovy类。这在Intellij中运行良好。 但是当使用gradle构建时,我得到了Groovy类的:unresolved引用类。查看构建,我发现首先