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

时间:2016-04-24 22:58:39

标签: gradle spring-boot

我有一个构建base.jar文件的成绩项目。此项目依赖于gradle文件中定义的第三方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错误。我错过了什么吗?

我所要做的就是确保我有一个base.jar构建了所有公共依赖jar,只需将依赖项设置为base.jar而不是50个其他jar就可以被不同的其他服务使用。

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

1 个答案:

答案 0 :(得分:0)

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

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

dependencies {
    compile project(':base')
}

希望这可以解决您的问题。