详细可参考 jkmvc-example
mkdir myproj
cd myproj
buid.gradle 的内容如下
//gradle脚本自身需要使用的资源
buildscript {
// 仓库
repositories {
jcenter()
mavenCentral()
maven {
url 'http://maven.aliyun.com/nexus/content/repositories/snapshots'
}
maven {
url "http://dl.bintray.com/kotlin/kotlin"
}
maven {
url 'http://oss.jfrog.org/artifactory/oss-snapshot-local'
}
}
// 依赖
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
classpath "org.jetbrains.dokka:dokka-gradle-plugin:${dokka_version}"
classpath "org.akhikhl.gretty:gretty:${gretty_version}"
}
}
// 工程标识
group 'net.jkcode.jkmvc'
version '1.8.0'
name 'myproj'
// gradle插件
apply plugin: 'java'
apply plugin: 'kotlin'
apply plugin: 'maven'
apply plugin: 'org.akhikhl.gretty'
// 工程需要使用的资源
// 仓库
repositories {
mavenCentral()
maven {
url 'http://maven.aliyun.com/nexus/content/repositories/snapshots'
}
maven {
url "http://dl.bintray.com/kotlin/kotlin"
}
}
// 依赖
dependencies {
compile "net.jkcode.jkmvc:jkmvc-http:1.9.0
}
// 源码目录
sourceSets {
main {
java {
srcDirs = ['src/main/java', 'src/main/kotlin']
}
resources {
srcDirs = ['src/main/resources']
}
}
test {
java {
srcDirs = ['src/test/java', 'src/test/kotlin']
}
resources {
srcDirs = ['src/test/resources']
}
}
}
// 启动jetty
gretty{
// server 配置
servletContainer 'jetty9' // 'tomcat8'
httpPort 8080
managedClassReload true // 热部署
scanInterval 1 // 热部署的扫描间隔,当值为0时,不扫描新class,不热部署
// 调试: gradle appRunDebug
debugPort 5006 // 运行jetty的jvm独立于运行gradle的jvm, 因此也使用独立的调试端口
debugSuspend true
// webapp 配置
contextPath "/${project.name}"
inplaceMode "hard" // 资源目录 src/main/webapp
}
选择菜单: File -> New -> Project From Existing Sources...
选择我们在上一步创建build.gradle
vim src/main/webapp/WEB-INF/web.xml
添加以下内容
<filter>
<filter-name>jkmvc</filter-name>
<filter-class>net.jkcode.jkmvc.http.JkFilter</filter-class>
<!-- 支持servlet3.0的异步servlet -->
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>jkmvc</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
vim src/main/kotlin/com/jkmvc/example/controller/WelcomeController.kt
package net.jkcode.jkmvc.example.controller
import net.jkcode.jkmvc.http.Controller
/**
* 主页
*/
class WelcomeController: Controller() {
/**
* 主页
*/
public fun index() {
res.renderHtml("hello world");
}
}
其实是注册Controller类所在的包,jkmvc建议你在所有的controller都放在统一的包下
vim src/main/resources/http.yaml
# 是否调试
debug: true
# 静态文件的扩展名
staticFileExts: gif|jpg|jpeg|png|bmp|ico|svg|swf|js|css|eot|ttf|woff
# controller类所在的包路径
controllerPackages:
- net.jkcode.jkmvc.example.controller
# 视图目录, 根目录为webapp
viewDir:
gradle appRun -x test
在浏览器中访问 http://localhost:8081/myproj