微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Gradle Output Jar没有Main-Class

我有以下简单的build.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 / lib目录中获得一个没有主类设置的jar.它的清单文件没有Main-Class条目.为什么是这样?

解决方法

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

如果你需要在你的jar中有一个Main-Class,那么你必须提供它与java插件的vie jar配置,如下所示:

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

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

原文地址:https://www.jb51.cc/java/121530.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐