【问题标题】:Referring to a jar inside a library folder of another jar in gradle - class not found在gradle中引用另一个jar的库文件夹中的jar - 找不到类
【发布时间】:2016-04-24 22:58:39
【问题描述】:

我有一个构建 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,其他服务就可以使用它.

请告诉我如何实现这一目标。

【问题讨论】:

    标签: gradle spring-boot


    【解决方案1】:

    这取决于您如何解决对 base.jar 的依赖。您对依赖项进行编码的方式将导致 gradle 尝试从您的存储库中提取基本 jar - 可能是本地 Maven 存储库(?),它可能不包含具有外部依赖项的 base.jar 版本。如果您在同一工作区和父项目中有基本 jar,您应该能够替换

    dependencies {
        compile('com.myworld:base:1.0.0')
    }
    

    dependencies {
        compile project(':base')
    }
    

    希望这能解决您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-18
      • 2015-02-18
      • 1970-01-01
      • 1970-01-01
      • 2011-04-30
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      相关资源
      最近更新 更多