我有一个 gradle 项目,目前运行良好。我现在需要添加一个 Java 库(打包为 Jar)作为依赖项并使用 Jar 文件中定义的类。如果我在 build.gradle 中使用 flatDir 作为存储库,则效果很好,
存储库{
mavenCentral()
平面目录 {
目录 '../java_library/build/libs'
}
}
然后在依赖项中,
编译名称:“java_library-0.0.1”
然后我可以轻松地将类从库导入到我自己的代码中,构建成功,一切正常。
但是,我无法在构建服务器上执行此操作,因此我需要从我们组织的内部 Maven 存储库中获取它,而不是从本地工作区引用 jar。
maven {
网址'http://customer_repo:0000/maven'
}
然后在依赖项中,
编译('our.company.groupid:java_library:0.0.1')
我已经验证该库已发布到本地存储库,并且 gradle 并没有说它无法获取依赖项(在 Jar 发布到本地存储库之前它给出了一个这样的错误)。
但是现在,当我构建项目时,它给出了编译错误,说它没有找到指向从 Jar 库导入的类的符号。 IDE (IntelliJ) 中也显示了相同的错误,该错误也与 flatDir 一起正常工作。
有什么明显我遗漏的东西吗?
已解决: 是的,我遗漏了一件明显的事情。在JAR库项目中,build.gradle有以下内容,
发布{
...
出版物{
工件 ID = 'java_library'
}
}
我失踪了
来自 Components.java
我添加后,
发布{
...
出版物{
工件 ID = 'java_library'
来自组件.java
}
}
并再次发布该库,我能够将其成功导入到其他项目中。
最佳答案
首先,在浏览器中打开此 URL,并确保您可以通过单击链接访问您的库(即 our -> company -> groupid -> java_library -> 0.0.1
)
其次,下载库并检查它是否确实包含丢失的类文件。可能您上传了错误的文件,该文件不是库。
关于java - 依赖项(Jar 文件)中的类未解析,导致编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55768858/