Gradle —— 运行自己的应用

Posted 超级黑客炼成记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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文件夹仅有一个文件 build\com\mycompany\main.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 文件夹,也包含 build\com\mycompany\main.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 文件夹内会有 build\libs\test-1.0-SNAPSHOT.jar,运行 jar 包即可,在 libs 文件夹中

java -jar test-1.0-SNAPSHOT.jar

即可成功运行。

4.1 做了什么

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

5. 其他

gradle clean

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


以上是关于Gradle —— 运行自己的应用的主要内容,如果未能解决你的问题,请参考以下文章

谷歌地图不显示在片段中

片段内部静态类和gradle问题

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

每当我运行我的片段时,这行代码 mapFragment.setRetainInstance(true);正在崩溃我的应用程序? [关闭]

理解使用Gradle编译打包Android apk

Gradle 任务 assembleDebug 失败,退出代码为 1(运行时异常)