我有一个build.gradle.kts
文件,其中包含以下代码:
plugins {
kotlin("jvm") version "1.8.0"
application
}
repositories {
mavenCentral()
}
dependencies {
implementation("org.apache.poi:poi-ooxml:5.2.0")
implementation("org.apache.poi:poi:5.2.0")
implementation("com.vortexa.refinery:refinery:master.161")
}
}
但我得到一个错误:untitled:main: Could not find com.vortexa.refinery:refinery:master.161
.我可以克隆仓库(https://github.com/VorTECHsa/refinery)并以某种方式连接它吗?
1条答案
按热度按时间mspsb9vt1#
我以前从未见过这种情况,但这个库是非常规的,因为他们没有将其发布到Maven Central或故意使其可由JitPack构建。相反,它只发布到GitHub Packages。这使得这成为一个很大的麻烦,因为GitHub要求您进行身份验证,即使只是读取公共存储库。
我认为它应该和JitPack一起工作,因为JitPack上的这个仓库的页面显示它是一个成功的构建。它只是没有对应于发布版本的最后提交的正确版本号。JitPack不是库作者发布的东西,所以它可能没有组ID,工件ID,JitPack使用基于GitHub地址的组名按需自动构建项目。
所以,用Jitpack来做这件事,这是更简单的方法:
在
build.gradle
文件的repositories
块中添加这个额外的Maven存储库的信息:并更改您的实现行以使用这个库的JitPack版本:
在这里,版本号是与他们最后一次发布日期相对应的提交号。它不是由JitPack构建的,直到刚才我在他们的网站上点击它请求它。看起来它是成功的,所以这应该可以工作。
用GitHub包来实现这一点,这是一个困难的方法,但可能更合适,因为这是库作者的意图,并且有版本号:
首先,你需要一个GitHub账户。然后你需要根据instructions here为你的账户生成一个读令牌。令牌会在一段时间后过期,所以当你的项目停止构建时,这是一个陷阱,你会忘记你必须偶尔获得一个刷新的令牌。当你创建令牌时,你只需要选中
read:packages
的复选框。然后将此额外Maven资源库的信息添加到
build.gradle
文件中的repositories
块:由于将令牌签入版本控制不是一个好主意,因此建议您将令牌放入系统变量中,然后您可以在Gradle中引用它,如下所示:
如果您不想将GitHub用户名签入版本控制,您可以对GitHub用户名执行相同的操作。