Gradle(二) —— 运行自己的应用

Gradle(二) —— 运行自己的应用


### 1. 综述

完成简单的 Hello World 之后,怎么运行我们的程序呢,有三种方法:

  1. 直接用 IDE,右键 -> run 'Main.main'
  2. 在 gradle.build 中加入 application plugin,进行一些配置,然后在命令行运行 gradle run
  3. 在 gradle.build 中设置 jar task,进行一些配置,然后在命令行运行 java -jar myapplication.jar

### 2. 用 IDE 操作方法自然不用赘述,可以顺利执行成功。那么执行时发生了什么呢,答案是 **IDE自动在项目文件夹里生成了一个 build 文件夹,其中是以包名为结构的文件层次,最后整个build文件夹仅有一个文件 buildcommycompanymain.class**,在所有的执行方法里,此种方法对项目文件夹的改变最小。
### 3. application plugin 在 gradle.build 加入
apply plugin 'application'

application plugin 会为项目增加若干个task我们需要用到的是 application/run,运行 run 之前,还要配置项目的主类,让 run 能找到它。

gradle.build

mainClassName = 'com.mycompany.Main'

然后在命令行运行 run

gradle run

即可。

3.1 做了什么

gradle run 同样生成了 build 文件夹,也包含 buildcommycompanymain.class,同时还加入了其他一些文件。

4. jar task

在 gradle.build 中加入 jar task

jar {
	manifest.attributes 'Main-Class': 'com.mycompany.Main'
	from configuration.compile.collect { zipTree it}
}

上述代码的作用:

语句 作用 不加会出现的错误
manifest.attributes 'Main-Class': 'com.mycompany.Main' 打包成的 jar 包里的 MANIFEST.MF 文件里加入 Main-Class: cn.edu.tju.Main 一行 运行 jar 包找不到主类
from configuration.compile.collect { zipTree it} 将引用的包打进 jar 包 Class not found,因为引用了却找不到

之后执行

gradle build

在生成的 build 文件夹内会有 buildlibs est-1.0-SNAPSHOT.jar,运行 jar 包即可,在 libs 文件夹中

java -jar test-1.0-SNAPSHOT.jar

即可成功运行。

4.1 做了什么

gradle build 命令构建l了这个项目,生成了 build 文件夹,其中不但含有 jar 包,还有 tarzip.bat等,也有 .class 文件。它生成的文件最多,包含了上述两种方法生成的文件。

5. 其他

gradle clean

命令将会清理 gradle build 的结果,即删除 build 文件夹,每一次 build 前最好都 clean 一下。

原文地址:https://www.cnblogs.com/yongheng20/p/6161160.html