我有一个gradle项目,目前运行正常。现在,我需要添加一个Java库(打包为Jar)作为依赖项,并使用Jar文件中定义的类。如果我将flatDir用作build.gradle中的存储库,则此方法很好用,
repositories { mavenCentral() flatDir { dirs '../java_library/build/libs' }}
然后在依赖项中
compile name: "java_library-0.0.1"
然后,我可以轻松地从库中将类导入到我自己的代码中,构建成功,一切正常。

但是我无法在构建服务器上执行此操作,因此,我需要从组织的内部Maven存储库中获取它,而不是从本地工作区中引用jar。
maven { url 'http://customer_repo:0000/maven' }
然后依赖
compile ('our.company.groupid:java_library:0.0.1')
我已验证该库已发布到本地存储库,并且gradle并没有说它无法获取依赖项(在将Jar发布到本地存储库之前给出了这样的错误)。

但是现在,当我构建项目时,它给出了编译错误,表明它找不到指向从Jar库导入的类的符号。在IDE(IntelliJ)中显示了相同的错误,该错误也可以与flatDir一起正常使用。

有什么明显的我想念的吗?

解决了:
是的,我明显缺少一件事。在JAR库项目中,build.gradle具有以下内容,
publishing { ... publications { artifactId = 'java_library' }}
我不见了
from components.java
我一添加它,
publishing { ... publications { artifactId = 'java_library' from components.java }}
并再次发布了库,因此我能够在其他项目中成功导入它。

最佳答案



首先,在浏览器中打开此URL,并确保您可以通过单击链接(即our -> company -> groupid -> java_library -> 0.0.1)访问您的图书馆

其次,下载库并检查它是否确实包含缺少的类文件。可能是您上传的文件不是库文件,但文件错误。

关于java - 依赖项(Jar文件)中的类未解析,导致编译错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55768858/

10-11 06:50
查看更多