我有以下简单的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
,我会在 build/lib
目录中找到一个没有主类设置的jar . 它的清单文件没有 Main-Class
条目 . 为什么是这样?
1 回答
这是由于应用程序插件的工作方式 .
mainClassName
是application
插件使用的属性,当它创建可执行jar时,它不需要在清单中有Main-Class
,因为它不使用它 .如果你需要在你的jar中有
Main-Class
,那么你必须提供java
插件的jar
配置,如下所示:否则,只需使用由应用程序插件生成的可执行文件,无论是通过
run
任务还是通过它可以为您创建的发行版,使用脚本来运行应用程序及其所有依赖项 .