我有一个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
}
}
并再次发布了库,因此我能够在其他项目中成功导入它。
答案 0 :(得分:0)
首先,在浏览器中打开此URL,并确保您可以通过单击链接(即our -> company -> groupid -> java_library -> 0.0.1
)访问您的图书馆
第二,下载库并检查它是否确实包含缺少的类文件。可能是您上传的文件不是库文件。