Java Gradle输出Jar没有主类
我有以下简单的build.gradle文件:Java Gradle输出Jar没有主类,java,gradle,jar,Java,Gradle,Jar,我有以下简单的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(St
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");
}
}
但是,如果我运行
gradlebuild
我会在build/lib
目录中得到一个没有主类集的jar。它的清单文件没有主类
条目。为什么会这样?这是因为应用程序插件的工作方式mainClassName
是application
插件使用的属性,当它创建可执行jar时,它不需要在清单中包含Main类,因为它不使用它
如果您需要在jar中有一个Main类
,那么您必须按如下方式为java
插件提供viejar
配置:
jar {
manifest {
attributes(
'Main-Class': 'com.kurtis.HelloGradle'
)
}
}
否则,只需使用由应用程序插件生成的可执行文件,无论是通过run
任务还是通过它可以为您创建的发行版,以及运行应用程序及其所有依赖项的脚本即可。可能的副本您是否阅读过文档:?@Opal是的,我一直在阅读这些文件。这是一个很好的解释。为我清理了很多东西。谢谢谢谢不,我想知道我需要这个应用插件做什么。。我将使用java插件和这个。从java-jar x.jar开始就足够了。现在,如果您使用应用程序
插件并正确设置mainClassName
,就不需要在jar
的清单属性中指定Main Class
。