kotlin - Kotlin - 导入 Jar 和使用类
问题描述
我使用gradle init
并按照提示在 kotlin 中创建了一个库。它在 lib/build/libs 中编译并生成一个 jar 文件。然后我有另一个项目需要访问库中的函数。通过 intelliJ,我通过转到项目设置 > 模块 > 依赖项并添加 jar 文件来添加依赖项。然后我尝试导入库中定义的包,import DemoLib
其中 DemoLib 是包的名称(和库的名称)。这不会编译,因为它无法识别包名称。我也尝试过作为库而不是 jar 导入,结果相同。我怎样才能达到预期的效果?
编辑:如果它有帮助,这里是代码:
图书馆:
package DemoLib
class Library {
fun someLibraryMethod(): Boolean {
return true
}
}
客户代码:
package DemoClientAppOne
import DemoLib.*
class App {
val greeting: String
get() {
return "Hello World!"
}
}
fun main() {
println(App().greeting)
}
不是很有趣,但关键是 DemoLib 是一个未解析的引用,即使在将 jar 添加为依赖项之后也是如此
解决方案
你有三个选择
- 将两个项目合并在同一个 IDE 项目下,并在项目上使用 Gradle 依赖项:
settings.gradle
:
include 'project-lib'
build.gradle
:
implementation project(':project-lib')
请参阅https://docs.gradle.org/current/userguide/declaring_dependencies.html#sub:project_dependencies
将库安装到本地存储库并将其添加为 Gradle 依赖项:
应用插件:'maven'
然后运行gradle publishToMavenLocal
mavenLocal()
并在gradle.build
文件中添加存储库。
请参阅如何将 Gradle 编译的 jar 安装到本地 Gradle 存储库 files-2.1 而不是 Maven 存储库中?
将此 jar 用作平面库 Gradle 依赖项(假设此 jar 位于
libs
目录中:存储库 { flatDir { dirs 'libs' } }
依赖项{实现名称:'lib-jar-name'}
推荐阅读
- eclipse-plugin - JBoss Tools 4.16.0 Final 完全冻结 Eclipse 4.16 (2020-06)
- list - 使用过滤器函数生成一个列表,输出两个列表的非公共元素
- python - 为什么更改一个对象的属性会更改同一类中不同对象的属性?
- javascript - 如何解决此错误;'document.getElementById('myChart').getContext' 未定义)?
- python - 我无法导入熊猫,因为我不断收到一个奇怪的错误
- android - AOSP 启动完成后显示“免责声明”屏幕
- python - 当我在 Python 中向调制解调器发送串行端口消息时,整数返回值是什么意思?
- visual-studio - 设置智能感知延迟(VS 2019)
- javascript - 使用 map() 方法创建的数组的索引
- azure - 在 azure aks 上监控请求持续时间