Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.3k views
in Technique[技术] by (71.8m points)

用 gradle 打包自己写的 kotlin 工具包,打成的 jar 其他项目无法 import 里面的方法怎么办?

项目是用 IDEA 的 gradle 项直接创建的,项目路径如下:

src/
├── main
│?? ├── java
│?? ├── kotlin
│?? │?? └── org
│?? │??     └── lxx
│?? │??         └── dxtool
│?? │??             ├── dxcmd
│?? │??             │?? └── DxCmd.kt
│?? │??             ├── dxfileext
│?? │??             │?? └── DxFileExt.kt
│?? │??             ├── dxjdbc
│?? │??             │?? └── DxJdbc.kt
│?? │??             ├── dxjsonlog
│?? │??             │?? └── DxJsonLog.kt
│?? │??             ├── dxlog
│?? │??             │?? └── DxLog.kt
│?? │??             ├── dxnats
│?? │??             │?? └── DxNATS.kt
│?? │??             ├── dxresources
│?? │??             │?? └── DxResources.kt
│?? │??             ├── dxssh
│?? │??             │?? └── DxSSH.kt
│?? │??             ├── dxtcp
│?? │??             │?? └── DxTCP.kt
│?? │??             ├── dxtemplate
│?? │??             │?? └── DxTemplate.kt
│?? │??             └── dxtime
│?? │??                 └── DxTime.kt
│?? └── resources
└── test
    ├── java
    ├── kotlin
    └── resources

gradle 文件内容如下:

plugins {
    id 'org.jetbrains.kotlin.jvm' version '1.3.72'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    compile 'com.github.sisyphsu:dateparser:1.0.4'
    compile group: 'com.jcraft', name: 'jsch', version: '0.1.55'
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.10'
    compile group: 'commons-codec', name: 'commons-codec', version: '1.14'
    compile 'commons-net:commons-net:3.6'
    compile 'org.freemarker:freemarker-gae:2.3.30'
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

jar {
    from { configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
}

执行 gradle build 命令打包,打完包之后其他项目使用 compile files('jar 包的路径 /dxtool-1.0-SNAPSHOT.jar')之后,却无法 import 到包里面的方法。从IDEA中的external libraries项查看,发现自己的jar包右侧会标记“library root”,请问如何解决呢,非常感谢大家


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
等待大神解答

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...