Gradle 构建Java,Web项目以及包装器

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' //包装器被解压后存放的相对路径
}

猜你喜欢

转载自blog.csdn.net/weixin_40792878/article/details/85209972