使用gradle的多项目java构建

使用gradle的多项目java构建,java,gradle,ant,multi-project,Java,Gradle,Ant,Multi Project,我决定在一些应用程序中使用gradle而不是ant。 “我的应用”的文件夹结构为: ---爪哇 ------格雷德尔先生 ------格雷德尔酒店 ------sourcefolder1 ------sourcefolder2 ------sourcefolder3 ---------------子采购商1 ---------------次级采购商2 我为每个应用程序获取编译文件,并创建一个包含所有编译文件的jar 我的问题如下: java文件夹下没有可编译的代码,只有它的子目录下的代码,这

我决定在一些应用程序中使用gradle而不是ant。 “我的应用”的文件夹结构为:

---爪哇
------格雷德尔先生
------格雷德尔酒店
------sourcefolder1
------sourcefolder2
------sourcefolder3
---------------子采购商1
---------------次级采购商2

我为每个应用程序获取编译文件,并创建一个包含所有编译文件的jar

我的问题如下: java文件夹下没有可编译的代码,只有它的子目录下的代码,这些子目录是gradle中的子项目。因此,我只对子项目应用java插件。在本例中,所有内容都可以编译,但是没有创建包含所有内容的最终jar。另一方面,如果我将java插件应用于rootProject,它将开始编译源文件夹,尽管它们有自己的uniqe项目

我尝试将java插件应用于根项目,并重写compileJava任务以不执行任何操作,但它创建了一个空jar,可能此任务也会生成要添加到jar的产品

有没有优雅的解决方案


谢谢。

所以您想单独构建项目,但最后有一个大jar文件?也许创建一个“优步”罐子是你的出路。看看这个STOV线程:实际上不完全是这样,我和我自己在争论我应该使用SourceSet还是单独的项目来表示我的源文件夹。我决定继续进行项目,因为声明它们之间的依赖关系要简单得多,可读性强得多,而且我不想教我的同事配置\源集和gradle的其他内部结构。这种方法有一些缺点:我为每个源文件夹都提供了一个jar,尽管我不需要它,但gradle在涉及项目时会做“额外的工作”。但是,我希望uberjar中只包含我的类,而不包含我的依赖项@ReneGr@ReneGroeschke添加rene