我有一个构建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就可以被不同的其他服务使用。
请告诉我如何实现这一目标。
答案 0 :(得分:0)
这取决于你如何解决对base.jar的依赖。您对依赖项进行编码的方式将导致gradle尝试从您的存储库中引入基础jar - 可能是本地Maven存储库(?),它可能不包含具有外部依赖项的base.jar版本。如果您在同一工作区和父项目中有基础jar,则应该能够替换
dependencies {
compile('com.myworld:base:1.0.0')
}
与
dependencies {
compile project(':base')
}
希望这可以解决您的问题。