Gradle —— 运行自己的应用
Posted 超级黑客炼成记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradle —— 运行自己的应用相关的知识,希望对你有一定的参考价值。
1. 综述
完成简单的 Hello World 之后,怎么运行我们的程序呢,有三种方法:
直接用 IDE,右键 -> run 'Main.main'
在 gradle.build 中加入
application
plugin,进行一些配置,然后在命令行运行gradle run
在 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 —— 运行自己的应用的主要内容,如果未能解决你的问题,请参考以下文章
如何使用模块化代码片段中的LeakCanary检测内存泄漏?
每当我运行我的片段时,这行代码 mapFragment.setRetainInstance(true);正在崩溃我的应用程序? [关闭]