Java 如何使用gradle应用程序插件运行包含多个包的项目?

Java 如何使用gradle应用程序插件运行包含多个包的项目?,java,gradle,Java,Gradle,我有一个带有多个包的gradle项目。我在项目的根级别有一个build.gradle文件。当我发布gradle build时,我在每个包中都会得到一个build文件夹,其中包含一个包jar。其中一个包具有主类。我想使用应用程序插件来帮助我做到这一点。当我将应用程序插件和主类名添加到根build.gradle文件中,执行gradle run时,我得到一个错误,即找不到该类。原因是gradle正在查找构建文件夹,其中包含类和资源文件夹。我没有看到它们生成,我假设这与多包场景有关。如何使应用程序插件适

我有一个带有多个包的gradle项目。我在项目的根级别有一个build.gradle文件。当我发布gradle build时,我在每个包中都会得到一个build文件夹,其中包含一个包jar。其中一个包具有主类。我想使用应用程序插件来帮助我做到这一点。当我将应用程序插件和主类名添加到根build.gradle文件中,执行gradle run时,我得到一个错误,即找不到该类。原因是gradle正在查找构建文件夹,其中包含类和资源文件夹。我没有看到它们生成,我假设这与多包场景有关。如何使应用程序插件适用于多个软件包?

假设您指的是“项目”而不是“软件包”,那么运行应用程序插件的子项目的方法是在命令行上命名项目,如下所示

gradle sub_project_name:run
在多项目构建中,您可能具有如下结构:

root_project
 |
 +-- sub1
 |
 +-- sub2
 .
 .
 .
如果
sub1
包含代码

apply plugin: 'application'
mainClassName = com.example.MyMain
然后,您可以使用以下命令运行MyMain类

gradle sub1:run

所有这些都在这个链接中详细说明:

当你说“包”时,我想你的意思是“项目”。如果是这样,请更新您的问题。这个链接讨论多项目构建:我有一个类似的问题。当“应用程序”插件应用于其中一个子项目时,在本例中为sub1,则
gradle build
将生成sub1.zip和sub1.tar发行版。分发名称应与根项目的名称相同。我们如何解决这个命名问题?