我有以下简单的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
条目。这是为什么?
答案 0 :(得分:13)
这是由于应用程序插件的工作方式。 application
是Main-Class
插件使用的属性,当它创建可执行jar时,它不需要在清单中有Main-Class
,因为它不会用它。
如果你的jar中需要jar
,那么你必须按照以下java
插件的jar {
manifest {
attributes(
'Main-Class': 'com.kurtis.HelloGradle'
)
}
}
配置提供它:
run
否则,只需使用由应用程序插件生成的可执行文件,无论是通过{{1}}任务还是通过它可以为您创建的发行版,使用脚本来运行您的应用程序及其所有依赖项。< / p>