文章目录
- 1.定制项目结构
- 2.定制项目输出路径
- 3.配置和使用外部依赖
- 4.构建Java项目
- 4.1 gradle构建Java流程
- 4.2 定制gradle的Java项目
- 5.构建Web项目
- 5.1使用war插件
- 5.2定制war插件
- 5.3 使用嵌入式容器Jetty运行
- 5.4 定制Jetty插件
- 6. Gradle包装器
- 6.1 配置包装器
- 6.2 使用包装器
- 6.3 定制包装器
1.定制项目结构
Gradle默认项目结构 就是Maven的项目结构
- src/main/java放应用源代码
- src/main/resources 放配置文件
- src/test/java 放测试代码
在build.gradle中添加如下代码
//应用源代码位置
sourceSets {
main{
java {
srcDirs =['src/java']
}
}
//测试源代码文件
test{
java{
srcDirs =['src/test']
}
}
}
如图:这里自定义的目录
2.定制项目输出路径
在build.gradle中添加如下代码
buildDir="out" //这里表示输出路径是out文件,默认是build文件,上图也可见
3.配置和使用外部依赖
在build.gradle中添加如下代码
//仓库
repositories {
mavenCentral()
}
//依赖]
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.2'
testCompile group: 'junit', name: 'junit', version: '4.12'
}
4.构建Java项目
4.1 gradle构建Java流程
在build.gradle中添加如下代码
步骤一:
apply plugin : 'java'
这一行代码就可以让Gradle自己去找java的源文件,默认是src/main/java目录去找,如果要修改见上面的定制还有输出目录
**步骤二:**新建一个Java项目(需要主类一个包含Main方法)
**步骤三:**执行gradle build命令,这样会生成一个build目录包含class文件和libs以及临时文件,我这里是定制的输出用的out目录
步骤四: 执行命令java -cp out/classes/main com.vison.ToDoApp
执行main方法(com.vison.ToDoApp表示你的主类地址)这是通过执行class文件来执行的
4.2 定制gradle的Java项目
在上面的基础上,在build.gradle中添加如下代码
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8 //设置Java版本编译兼容1.8
//指定main位置
jar{
manifest {
attributes 'Main-class':'com.vison.ToDoApp'
}
}
然后重新gradle clean ,gradle build 会看到项目会生成带有版本号的jar文件
可以通过java -jar out/libs/ToDoGradle-1.0-SNAPSHOT.jar 包可以执行文件中的main方法。
5.构建Web项目
5.1使用war插件
**步骤一:**在build.gradle中添加如下代码
//war插件,表示生成一个war包, war应用默认目录是src/main/webapp(js.css.html文件目录)
apply plugin : 'war'
//依赖,用原始的servlet,这里注意providedCompile ,runtime 表示configuration,和maven中的scope雷同
dependencies {
providedCompile 'javax.servelt:servlet-api:2.5'
runtime 'javax.servlet:jstl:1.1.2'
}
**步骤二:**构建web项目
使用默认的目录如下:
**步骤二:**执行命令gradle build会在build/libs中生成war包(war插件来执行的)war包任务将目录src/main/webapp内容原封不动的拷贝到WAR包的根目录下,编译后的class文件最终是会放到WEB-INF/classes中,通过依赖定义的包会放在WEB-INF/lib中。如下WAR包中的文件
5.2定制war插件
如果我们不是用默认的web项目目录,如下使用这个目录结构
静态资源放在static中,原来的webapp改为了webfiles目录
步骤:在build.gradle中添加如下代码
webAppDirName='webfiles' //修改web应用源目录位置
war{
from 'static' //将static目录添加到WAR根目录下
}
5.3 使用嵌入式容器Jetty运行
**步骤一:**在build.gradle中添加如下代码
apply plugin : ‘jetty’
步骤二: 执行命令gradle jetty run 就可以了
5.4 定制Jetty插件
修改端口和上下文路径
jettyRun{
httpPort =9090
contextPath='toDoList' //这个表示新的项目地址名访问的地址http://localhost:9090/toDoList 访问该项目
6. Gradle包装器
由包装器支持的gradle脚本非常适合自动化发布过程的一部分,比如持续集成。主要是避免团队开发gradle版本不一样,其他队员从代码仓库中上拉取代码要让gradle版本在本地开发相同。
6.1 配置包装器
步骤一: 在build.gradle中添加如下代码
task wrapper(type:Wrapper){
gradleVersion ='4.4' //gradle版本
}
步骤二: 本地执行命令 gradle wrapper
这个命令会默认从Gradle的微类库中下载gradle包并解压
另外下载完了你的本地会生成在$HOME_DIR/.gradle/wrapper/dists目录,你的项目中也会有一个wrapper目录;还有gradlew 和gradlew.bat两个脚本文件。
- gradlew 这个是*nix的执行包装器shell脚本
- gradlew.bat这个windows的执行包装器脚本
6.2 使用包装器
使用上面这两个脚本例如windows环境执行 gradlew.bat jettyrun
linux环境中 执行命令gradlew.bat jettyrun运行jetty容器
6.3 定制包装器
通常公司都是用自己的内网,所以gradle可以定制url下载,当然还有很多特性可以定制可以查看下官网内容。
task wrapper(type:Wrapper){
gradleVersion ='4.4' //请求的版本
distributionUrl ='http://myenterprise.com/gradle/dists' //获取gradle包装器的url
distributionPath = 'gradle-dists' //包装器被解压后存放的相对路径
}