Gradle之恋(3)-Init插件

概述

Gradle构建项目是基于两个基本概念的:项目任务

任何一个Gradle构建项目都是由一个或多个项目组成,而每个项目又是由一个或多个任务组成,每个任务是一个工作单元,它可以是编译、打包、生成JavaDoc、部署等。项目的类型完全取决于你要它做什么,它可以是类库Jar项目、Web项目、Zip项目等。Gradle

Init插件

Init插件是Gradle内置的插件,无需配置,它提供了两个任务init和wrapper,前者用于创建Gradle项目,后者用于为项目生成wrapper文件。可用命令查看任务列表:

$ gradle tasks

输出
Gradle Init插件任务

init任务

init任务通过参数type来指定Gradle项目的类型,如pom用于把maven项目转换成Gradle项目,java-application用于创建普通的java应用等,可以通过帮助任务查看任务的相关信息:

$ gradle help --task init

输出
Gradle Init插件任务

创建项目

创建java-application

$ gradle init --type java-application

结构
Gradle Init插件任务

  • 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

翟前锋 wechat
欢迎订阅我的微信公众号:zhaiqianfeng!