依赖项(Jar文件)中的类未解析,导致编译错误

时间:2019-04-19 23:22:24

标签: java gradle

我有一个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 } }

并再次发布了库,因此我能够在其他项目中成功导入它。

1 个答案:

答案 0 :(得分:0)

  

url'http://customer_repo:0000/maven'

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

第二,下载库并检查它是否确实包含缺少的类文件。可能是您上传的文件不是库文件。