解决gradle多模块依赖在Idea中能运行,gradle build失败的问题。
最近需要初始化一个SpringBoot新项目遇到一个问题就是:项目中有多个子模块,使用gradle依赖管理成功。
项目结构如下:
project
--module1
--module2
我的module2模块依赖了module1模块,在module2模块中,使用到了module1中的某个类。在Idea中运行也没有问题,但是当我在module2模块中执行gradle build的时候,却报错了。说找不到module1中的某个类。
原因:因为在Idea中,module2可以直接从buildpath中读取到依赖模块中的代码,但是当在执行gradle build的时候,没有了Idea来管理buildpath,所以找不到了。即使在module2中的gradle里面写了compile project('module1')也不行。
这个时候,只需要让module1打成jar包,module2就能依赖上了。
解决办法:
在module1的build.gradle中加上
jar{
enabled = true
baseName = 'pay-common'
version = '0.0.1-SNAPSHOT'
}
即可。注意,加上这个配置以后,生成的jar包就是一个只包含自己模块里面的代码的jar包。所以,在最终要运行的jar的那个模块中不要使用。假如,我的module2是一个要执行的jar文件(standalone),就不需要加这个配置。