我有一个构建 base.jar 文件的等级项目。该项目依赖于 gradle 文件中定义的第 3 方 jar 文件。
dependencies {
compile('com.abc.something:something')
}
当构建任务创建 jar 文件时,它会将“something.jar”放在 base.jar 文件内的 lib 文件夹中。我认为这对我来说没问题。
现在我有另一个名为“abc”的 gradle 项目,它依赖于我刚刚创建的基本 jar
dependencies {
compile('com.myworld:base:1.0.0')
}
我假设 abc 项目可以访问 base.jar 的 lib 文件夹中的 something.jar 文件。但由于某种原因,它没有。当我尝试访问 something.jar 中的类时,我不断收到 No class def found 错误。我错过了什么吗?
我要做的就是确保我有一个使用所有常见依赖项 jar 构建的 base.jar,只需将依赖项设置为 base.jar 而不是其他 50 个 jar,其他服务就可以使用它。
请让我知道如何实现这一目标。
最佳答案
这取决于您如何解决对 base.jar 的依赖。您对依赖项进行编码的方式将导致 gradle 尝试从您的存储库中提取基本 jar - 可能是本地 Maven 存储库(?),它可能不包含具有外部依赖项的 base.jar 版本。如果您在同一工作区和父项目中有基本 jar,您应该能够替换
dependencies {
compile('com.myworld:base:1.0.0')
}
和
dependencies {
compile project(':base')
}
希望这能解决您的问题。
关于gradle - 在gradle中引用另一个jar的库文件夹中的jar - 找不到类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36829857/