将库添加到Gradle Kotlin应用程序
我将简单的Kitlon文件转换成库,文件是:
Display.kt
:
package hello fun main(args: Array) { println("Hello World!") }
已经被编译成库使用命令:
kotlinc Display.kt -d Display.jar
输出已被交叉检查,使用命令工作:
kotlin -classpath Display.jar hello.DisplayKt
然后我把它移动到文件夹src/main/resources
,然后尝试从另一个应用程序调用它,使用下面的代码:
Hello.kt
:
package hello import hello.DisplayKt fun main(args: Array) { println("Hi") }
并定义build.gradle
文件如下(试图把我读到的所有选项来解决我的情况):
// set up the kotlin-gradle plugin buildscript { ext.kotlin_version = '1.1.2-2' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } // apply the kotlin-gradle plugin apply plugin: "kotlin" // add kotlin-stdlib dependencies. repositories { mavenCentral() } dependencies { //dependencies from a remote repositor compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" //local file compile files('src/main/resources/Display.jar') compile fileTree(dir: 'src/main/resources', include: '*.jar') } jar { manifest { //Define mainClassName as: '[your_namespace].[your_arctifact]Kt' attributes ('Main-Class': 'hello.HelloKt', "Implementation-Title": "Gradle", "Implementation-Version": 1) } // NEW LINE HERE !!! from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } } sourceSets { main { java { srcDirs = ['src/kotlin'] } resources { srcDirs = ['src/resources'] } } }
但是,运行gradle build
命令后,我得到了下面的错误:
Unresolved reference: DisplayKt
注意:我对JAVA / KOTLIN和GRADLE非常新颖
我find了答案,函数的完整路径是hello.main
- 如何导入Kotlin(Gradle)构建的ShadowJar插件?
- Mutidex和Kotlin
- Android Studio上的Kotlin(非Android)项目的ClassNotFoundException错误
- 具有不同源代码集的Gradle任务
- 在Spring Boot项目中使用Gradle从Kotlin测试引用Java代码时未解决的参考
- 执行失败的任务'应用程序:copyDebugAndroidTestKotlinClasses' – Android的Kotlin生成错误
- Gradle子项目排序并生成jar(spring boot + angular)
- 测试包不读取主包中定义的Kotlin类
- 未捕获的翻译错误:com.android.dx.cf.code.SimException:本地0007:无效