Gradle学习(四) web工程构建

Gradle为应用开发提供了两个相关的插件:war plugin以及jetty plugin
war plugin继承了java plugin为你的工程构建war包,jetty pugin继承了war plugin可以让的工程构建在嵌入式容器jetty中
 
构建War文件
首先在你的build.gradle中添加如下一行
apply plugin: ‘war‘
由于war plugin继承了java plugin,所有java plugin也会被默认的加入配置文件中
运行gradle build命令可以为你工程进行编译,测试以及打war包,Gradle会将你在工程src/main/webapp下的资源文件也一并打入war包中,你的编译代码和他们运行时的依赖同样会被打入jar包中
 
运行web工程
首先在你的build.gradle中添加如下一行
apply plugin: ‘jetty‘
由于jetty plugin继承了war plugin,所有war plugin也会被默认的加入配置文件中
运行gradle jettyRun命令,你的web工程就会在Jetty容器中被运行,运行gradle jettyRunWar命令会构建war包,然后将构建好的war在jetty容器中运行
 
在配置文件中加入下列命令可以设置Jetty的属性
httpPort = 8080 //http访问端口 默认8080
stopPort = 9451 //jetty监听来自admin请求的端口 默认无
stopKey = ‘foo‘ //停止jetty服务器默认键 默认无
 
War Plugin
War Plugin在继承Java plugin的继承上增加了打war文件的支持,它会将Java Plugin中的默认构建JAR文件的功能替换为为构建WAR文件。
相比于Java Plugin,War Plugin增加了如下一个Task
可以看到首先gradle回去处理对应的资源,然后对工程代码进行编译,最后进行打war包的操作,命令执行成功之后我们可以看见在build.gradle的同级目录下会出现一个名为build的文件夹
 

点进去之后可以发现如下的目录结构

classes文件夹下存放的是编译后的字节码文件,在libs目录下存放的就是打出的war包了,在resources目录下存放的是工程的资源文件。
假如你需要将你工程一些信息进行归档那么你可以使用gradle assemble命令,task assemble是依赖于task war的。
 
如果你需要定制化打包信息,比如你的工程的classpath与gradle默认的不同那么你可以重写war task:
1
2
3
4
5
6
7
war {
    from
 ‘src/rootContent‘ // adds a file-set to the root of the archive  default src/main/webapp
    webInf { from ‘src/additionalWebInf‘} // adds a file-set to the WEB-INF dir.
    classpath fileTree( ‘additionalLibs‘) // adds a file-set to the WEB-INF/lib dir
    webXml = file( ‘src/someWeb.xml‘)// copies a file to WEB-INF/web.xml
}

  

    

Gradle学习(四) web工程构建,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。