Gradle之恋-Init插件
概述
Gradle构建项目是基于两个基本概念的:项目和任务。
任何一个Gradle构建项目都是由一个或多个项目组成,而每个项目又是由一个或多个任务组成,每个任务是一个工作单元,它可以是编译、打包、生成JavaDoc、部署等。项目的类型完全取决于你要它做什么,它可以是类库Jar项目、Web项目、Zip项目等。
Init插件
Init插件是Gradle内置的插件,无需配置,它提供了两个任务init和wrapper,前者用于创建Gradle项目,后者用于为项目生成wrapper文件。可用命令查看任务列表:
$ gradle tasks
输出
init任务
init任务通过参数type来指定Gradle项目的类型,如pom用于把maven项目转换成Gradle项目,java-application用于创建普通的java应用等,可以通过帮助任务查看任务的相关信息:
$ gradle help --task init
输出
创建项目
创建java-application
$ gradle init --type java-application
结构
build.gradle 是构建脚本,一般称作为build script,任务定义、配置等均编辑此文件;
wrapper 是用于配置wrapper的;
gradlew和gradlew.bat分别是Unix系和windows系的替代gradle的shell;
settings.gradle 一般用于多项目的配置;
src 是java源代码;
执行任务
查看此项目有哪些任务如上,但上面的命令只能看到有group的,如果查看全部的任务需要使用参数all
$ gradle tasks --all
构建并单元测试
$ gradle build
只构建不执行单元测试
$ gradle build -x test
执行单元测试
$ gradle test
运行
$ gradle run
删除build目录
$ gradle clean
打包
$ gradle jar
遇到的问题
打包或构建成功后,会在build/libs会生成jar包,如gradle-command-line.jar,由于没有指定执行入口,所以执行会包异常:
no main manifest attribute, in build/libs/gradle-command-line.jar
此时需要在build script中指定,编辑build.gradle,在底部添加:
jar { manifest { attributes 'Main-Class':'App' } }
然后打包
$ gradle clean jar
执行jar
java -jar build/libs/gradle-command-line.jar
未完待续....
更多原创文章可关注我的个人博客:宅前疯 或微信公众账号:zhaiqianfeng