当前位置: 首页 > 知识库问答 >
问题:

Gradle输出Jar没有主类

竺和洽
2023-03-14

我有以下简单的构建。gradle文件:

apply plugin: 'application'
apply plugin: 'java'

mainClassName = 'com.kurtis.HelloGradle'

下面的单个java文件位于src/main/java/com/kurtis/HelloGradle。java

package com.kurtis;

public class HelloGradle {

    public static void main(String[] args) {

        System.out.println("Hello gradle");
    }

}

但是,如果我运行gradle build,我会在build/lib目录中得到一个jar,它没有主类集。它的清单文件没有Main类条目。为什么会这样?

共有1个答案

孟英光
2023-03-14

这是由于应用程序插件的工作方式mainClassName应用程序插件使用的属性,当它创建一个可执行jar时,它不需要在清单中包含Main类,因为它不使用它。

如果您需要在jar中有一个Main类,那么您必须为它提供jar配置java插件,如下所示:

jar {
  manifest {
    attributes(
      'Main-Class': 'com.kurtis.HelloGradle'
    )
  }
}

否则,只需使用由应用程序插件生成的可执行文件,无论是通过run任务还是通过它可以为您创建的发行版,以及运行应用程序及其所有依赖项的脚本。

 类似资料:
  • 我想有一个gradle项目,使用自定义任务创建一个jar(不使用任何gradle java插件)。什么是正确的方法来构建build.gradle,以便我可以在我的Android应用程序的gradle项目中依赖它? 更多详情: 目前,我的jar文件是在我从gradle调用的cmake项目中创建的。我想要一个合适的体形。调用我的cmake命令的gradle文件然后使用生成的jar作为工件。然后,我希望

  • 我有一个gradle构建脚本,它检索了一些常见的依赖项,并将它们组合起来创建了一个“胖罐子”。

  • 问题内容: 当按预期执行时,goroutine不打印任何内容。 问题答案: 当函数结束时,程序也将结束。它不等待其他goroutine完成。 引用Go语言规范:程序执行: 程序执行首先初始化主程序包,然后调用函数。当该函数调用返回时,程序退出。它不等待其他(非)goroutine完成。 有关更多详细信息,请参见此答案。 您必须告诉您的函数等待以goroutine形式启动的函数完成。您可以将它们与通

  • 我正在用Gradle构建一个JAR文件。当我尝试运行它时,我得到了错误 RxJavaD中没有主清单属性emo.jar 我试图操纵清单属性,但我想我忘记向它添加依赖项或其他东西了。我到底做错了什么?

  • 在命令行中,我需要构建一个没有依赖项的可执行jar。当前的“gradle build”命令给了我一个带有依赖项的jar。 在StackOverflow上找不到这个。如果是重复的问题,指给我看。谢谢。

  • 我正在尝试运行由maven shade插件创建的jar。我正在以以下方式配置主类: 编辑:我使用jar tf app.jar检查了jar的内容,看到了一个manifest.mf文件。但它没有main类的条目。我如何确保jar中的清单文件中有这个条目,以便在shade插件配置中添加它?