如何使用相互依赖的spring boot项目和JAR创建多构建gradle项目 背景
我用gradle写了一个spring boot项目,效果很好。 我想将项目拆分为库(JAR),以便可以重用它们 这些就是要求如何使用相互依赖的spring boot项目和JAR创建多构建gradle项目 背景,spring,spring-boot,gradle,intellij-idea,gradle-multi-project-build,Spring,Spring Boot,Gradle,Intellij Idea,Gradle Multi Project Build,我用gradle写了一个spring boot项目,效果很好。 我想将项目拆分为库(JAR),以便可以重用它们 这些就是要求 每个项目都位于兄弟文件夹中,每个文件夹都包含自己的.git repo 多版本项目应位于同级文件夹中,而不是包含子项目的文件夹中。它还包含自己的.git repo 仅用作库(jar)的项目具有带有@SpringBootTest注释的测试,这些测试应该可以独立运行 用作类库的项目应该作为“瘦jar”提供给其他项目,而不包括任何依赖项。正在使用的项目需要添加它所使用的所有项目累
@SpringBootTest
注释的测试,这些测试应该可以独立运行它包含三个文件夹:
productcommon
是一个带有公共类的jarProductFactory
@RestController
,在其方法之一中调用ProductFactory的公共方法。productservice的项目依赖于productcommonmultiproject
是一个渐变项目,没有依赖于productcommon
和productservice
productservice
时,它失败了——显然是因为productcommon
的项目导入失败了
这个例子中有什么遗漏或不正确的地方?今天我看到了这篇关于这个主题的优秀文章: 汤姆·霍姆伯格 Tom还提供了一个很好的例子:
在使用他的架构之后,我可能会有一些关于这个主题的后续问题,但目前,我对这个解决方案感到满意。什么不起作用?只需创建这些库,并确保没有应用spring引导插件。它只是一个普通的jar,而不是springboot项目。也就是说,
@SpringBootTest
也不起作用,因为它不是一个springboot项目。可能是因为需要做出很多决定,而我不知道如何做。这里有一些。1.哪一个项目(如果有的话)应该包含将输出复制到某处的gradle任务?在哪里?2.如何指定同级文件夹中项目的依赖关系?我是否需要使用settings.gradle文件进行此操作,还是应该在gradle文件中进行此操作,或者两者都使用?3.我如何在多构建项目级别强制执行依赖关系顺序(它似乎是按字母顺序构建的,然后由于缺少依赖关系而失败)。为什么需要复制东西,从一个项目到另一个项目声明依赖关系,这样就可以了(使用一个项目
依赖项,如gradle文档中所述)。gradle也会计算出构建事物的顺序,或者通过将它们放入设置中来实施。gradle
。所有这些答案都可以通过阅读gradle文档找到。我在哪里可以找到所有输出?(文档很难阅读。我正在寻找一组非常基本的需求,但找不到一个简单的例子来实现上述所有功能)。我将尝试创建一个示例项目并上传到这里。