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

2020-07-31 10:52:58 +08:00
 heavyrainn

项目是用 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 到包里面的方法,请问如何定位和解决呢,感谢大家

1300 次点击
所在节点    程序员
1 条回复
heavyrainn
2020-07-31 11:30:58 +08:00
通过 IDEA 看 External Libraries,发现我自己的 jar 包旁边会写一个 library root,请问和这个有关系么?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/694556

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX