gradle的gretty插件

既然gradle2.0内置的jetty插件只支持jetty 6.1.25版本,而jetty 6.1.25是不支持servlet 3的新特性,那也要找解决方法吧.<<gradle的jetty插件>>也提出可以使用第三方插件gretty,它不仅支持jetty servlet容器,还支持tomcat servlet等多种容器.配置也相对简单.
gretty的document:http://akhikhl.github.io/gretty-doc/index.html


下文是一个使用gretty插件的例子:

1.build.gradle

apply plugin: "war"
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.akhikhl.gretty:gretty:1.2.4'
    }
}
apply plugin: 'org.akhikhl.gretty'
group = "org.exam"
version = "1.0"
ext {
    jvmVersion="1.8"
    springVersion = "4.2.1.RELEASE"
    sl4jVersion="1.7.7"
}
repositories {
    mavenCentral()
}
[compileJava, compileTestJava, javadoc]*.options*.encoding = "UTF-8"
configurations {
    all*.exclude module: 'commons-logging'
}
dependencies {
    compile("org.slf4j:jcl-over-slf4j:$sl4jVersion")
    compile("org.slf4j:slf4j-log4j12:$sl4jVersion")
    compile("org.springframework:spring-webmvc:$springVersion")
    providedCompile("javax.servlet:javax.servlet-api:3.1.0")
    compile("commons-fileupload:commons-fileupload:1.3.1")
    compile("com.fasterxml.jackson.core:jackson-databind:2.3.1")
    compile("org.apache.taglibs:taglibs-standard-impl:1.2.1")
    testCompile("org.springframework:spring-test:$springVersion")
    testCompile("junit:junit:4.12")
}
/* 解决设置版本不起作用问题 */
tasks.withType(JavaCompile) {
    sourceCompatibility = jvmVersion
    targetCompatibility = jvmVersion
}
gretty {
    port = 8080
    contextPath ="/${project.name}"
    servletContainer = 'jetty9'
}

a.加入greety配置.在build.gradle加上2-9行是gretty插件的配置.
b.最后五行是gretty是适配tomcat或jetty的配置.其中不配置servletContainer,默认为jetty9,这个值可以是'jetty7', 'jetty8', 'jetty9', 'tomcat7', 'tomcat8'
2.导入当前这个gradle项目到IDEA去开发.
3.启动测试:
双击gradle面板上的appStart就可以启动jetty或tomcat(看servletContainer配的是什么),想停止servlet容器,点Run面板上的STOP按钮.当然,如果使用的servletContainer是tomcat,可以用tomcatStart;jetty就可以用jettyStart.我个人更喜欢在cmd命令来使用.
启动:d:\gradle\bin\gradle -i appStart
停止:d:\gradle\bin\gradle appStop




另:
当servlet容器是tomcat8,当使用appStop来停止会报警告
2014-07-31 16:14:03.863 WARN  - The web application [/test] appears to have started a thread named [
SeedGenerator Thread] but has failed to stop it. This is very likely to create a memory leak. Stack
trace of thread:
 java.lang.Object.wait(Native Method)
 java.lang.Object.wait(Object.java:503)
 sun.security.provider.SeedGenerator$ThreadedSeedGenerator.run(SeedGenerator.java:296)
 java.lang.Thread.run(Thread.java:722)
应该是可以忽略,最后可以打war包,再部署来观察,或许问题会消失.


源码:http://download.csdn.net/detail/xiejx618/7701173

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您有兴趣开发Gradle Android插件,以下是一些学习资源和步: 1. 熟悉Gradle和Android构建系统:首先,您需要对Gradle和Android构建系统有一定的了解。学习如何编写和运行Gradle构建脚本,以及理解Android项目的结构和构建过程。 2. 官方文档:阅读Gradle和Android官方文档中关于插件开发的部分。官方文档提供了详细的插件开发指南、示例代码和最佳实践,帮助您了解插件的结构、扩展点和API。 3. 学习示例代码:浏览GitHub等代码托管平台上的开源Gradle Android插件项目,学习其他开发者是如何实现插件功能的。可以参考一些知名的插件项目,如ButterKnife、Dagger等。 4. 实践项目:创建一个简单的Android项目,并尝试编写自定义的Gradle插件来自动化某些任务。可以从一些常见的需求开始,如修改BuildConfig文件、自动生成资源文件等。 5. 调试和测试:学习如何调试和测试Gradle插件Gradle提供了丰富的调试和测试功能,可以帮助您定位和解决插件中的问题。 6. 社区交流:加入Gradle和Android开发者社区,与其他开发者交流经验和问题。可以参加一些相关的在线论坛、技术博客和社交媒体群组,寻求帮助和分享您的学习心得。 总之,学习Gradle Android插件开发需要结合理论和实践,通过阅读文档、学习示例代码和实际项目实践来提升技能。希望这些资源和步骤能够帮助您开始学习Gradle Android插件开发。祝您学习顺利!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值