在我的 Gradle 构建期间,我需要运行一个简单的 Web 服务器来提供一些静态内容。为此,我正在使用 Gradle 的 integrated classes。
这是我的 build.gradle
的一个非常简单的版本:
apply plugin: 'groovy'
task server() {
doLast {
def root = new File(project.buildDir, '/site')
def port = 8765
def factory = new SimpleHttpFileServerFactory();
def server = factory.start(root, port)
println "HTTP server started on $port"
}
}
我面临以下两个问题:
gradle server
时,gradle 执行,启动服务器,然后退出(明显是后台驻留,服务器在运行,导致第二个问题) gradle server
时,出现异常,因为端口正在使用中。 我喜欢以下任一解决方案:
gradle server
时,gradle 一直运行,直到我按下 ctrl+c,然后服务器也被杀死 gradle startServer
和 gradle stopServer
,用于启动和停止 我怎样才能做到这一点,或者是否有不同的、更好的解决方案?
最佳答案
有点hack-ish但它有效,服务器任务将挂起,SIGKILL
也会杀死服务器
apply plugin: 'groovy'
task server() {
doLast {
def root = new File(project.buildDir, '/site')
def port = 8765
def factory = new SimpleHttpFileServerFactory();
def server = factory.start(root, port)
println "HTTP server started on $port"
while(true) Thread.sleep(1000)
}
}
关于Gradle HttpFileServer,继续运行,但在 ctrl+c 上终止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45057658/