gradle - 在gradle中引用另一个jar的库文件夹中的jar - 找不到类

标签 gradle spring-boot

我有一个构建 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/

相关文章:

spring - 库 jar 可以从 Spring Cloud Config Server 读取属性吗?

java - 使用 GIT 的 IDEA 新 gradle spring boot 项目。正确的创建顺序是什么?

java - 如何使用Gradle从jar分离配置文件

java - 为什么我添加依赖项时android studio会给出错误?

未使用 :submodule:build syntax 构建的子模块的 gradle 子模块

java - DB2 Dialect 代替 H2Dialect

java - 自定义 Hibernate validator Spring Boot

android - Travis CI - Android 项目构建失败

android - Android Gradle-任务覆盖不起作用

java - 用于带删除的 SFTP 出站的 Spring Integration DSL