无法使vert.x + kotlin + gradle热重新部署工作

时间:2018-01-08 11:26:58

标签: gradle kotlin vert.x

我刚开始研究vert.x并从https://github.com/vert-x3/vertx-examples/tree/master/kotlin-examples/web下载了一个示例restful项目。根据自述文件,它应该能够在任何文件更改时自动重新组合,但它似乎不起作用。无论我改变主类文件多少次,它仍然无法反映出来。我所做的是:

运行“gradlew run”

<VirtualHost *:80>
  :
  ...
    RewriteEngine On
    RewriteCond %{HTTP:X-Forwarded-Proto} =https
    RewriteRule ^(.*)$          /index.php?__path__=$1  [B,L,QSA]
    RewriteCond %{HTTP:X-Forwarded-Proto} =http
    RewriteRule . https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]  
  ...
 :    
</VirtualHost>

更改源文件,启动器能够检测到更改并说它重新部署了Verticle

*,
*:before,
*:after {
  box-sizing: border-box;
}

#formQuestions {
  width: 500px;
  margin: 2em auto;
  font-family: 'Source Sans Pro', sans-serif;
  font-weight: 300;
  font-size: 25px;
}

.float-label .control {
  float: left;
  position: relative;
  width: 100%;
  border-bottom: 1px solid #ddd;
  padding-top: 23px;
  padding-bottom: 10px;
}

.float-label .control.small {
  width: 30%;
  border-right: 1px solid #ddd;
}

.float-label .control.medium {
  width: 70%;
  padding-left: 10px;
}

.float-label .control:last-child {
  border: 0;
}

.float-label input,
.float-label textarea {
  display: block;
  width: 100%;
  border: 0;
  outline: 0;
  overflow-y: hidden;
  border: none;
  border-left: 1px solid rgb(204, 204, 204);
  border-right: 1px solid rgb(204, 204, 204);
  border-bottom: 1px solid rgb(204, 204, 204);
  overflow: auto;
}

.float-label input+label,
.float-label textarea+label {
  position: absolute;
  top: 10px;
  transition: top 0.7s ease, opacity 0.7s ease;
  opacity: 0;
  font-size: 18px;
  font-weight: 600;
  color: #ccc;
}

.float-label input:valid+label,
.float-label textarea:valid+label {
  opacity: 1;
  top: 3px;
}

.float-label input:focus+label,
.float-label textarea:focus+label {
  color: #2c8efe;
}

但实际上它仍在运行旧代码

我的问题是我需要做的任何事情,以使其正常工作。我花了一天时间浏览解决方案,但仍无法通过它。

非常感谢。

1 个答案:

答案 0 :(得分:0)

我也遇到了同样的问题,但确切地说是借助file的帮助。我以该批处理文件结束,该文件可以帮助我重新部署(在Windows上测试)。

我的项目命名为: testws ,而我的主版本名为: MainVerticle ,请确保将其替换为你拥有的。

redeploy.bat

@echo off

SET LAUNCHER="io.vertx.core.Launcher"
SET VERTICLE="juan.testws.MainVerticle"
SET CMD="gradlew classes"

call gradlew copyDependencies
call gradlew classes

java -cp  "build\dependencies\*;build\classes\kotlin\main" %LAUNCHER% run^
 %VERTICLE% --redeploy="src\main\**\*" --on-redeploy=%CMD% --launcher-class=%LAUNCHER%

并添加了gradle任务

build.gradle

...  // rest of the file
task copyDependencies(type: Copy) {
  from configurations.default
  into 'build\\dependencies'
}

在Java上几乎可以使用相同的版本,仅在文件上将“ kotlin”替换为“ java”。