gradle - Vagrant 和 gradle 持续构建

标签 gradle vagrant

我已经在 vagrant 机器上部署了 spring gradle 项目。这是我的Vangrantifle :

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/precise64"

  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2048"
  end

  config.vm.network "private_network", ip: "192.168.33.12"
  config.vm.hostname = "springboot"

  config.vm.provision "shell", path: "vagrant-scripts/utils.sh"
  config.vm.provision "shell", path: "vagrant-scripts/java.sh"
  config.vm.provision "shell", path: "vagrant-scripts/sdkman.sh", privileged: false
  config.vm.provision "shell", path: "vagrant-scripts/springboot.sh", privileged: false
  config.vm.provision "shell", path: "vagrant-scripts/gradle.sh", privileged: false

end

当我尝试使用 gradle build -t 运行连续构建时当框内的源代码发生更改时,它可以正常工作,例如当我使用 nano 编辑 java 文件时。

当我尝试通过共享文件夹修改主机中的 java 文件时,会出现我的问题。 Gradle 似乎没有注意到任何变化,也没有重建项目。

我怎样才能解决这个问题?我当然可以 touch vagrant box 上的文件,但不是很方便。

最佳答案

VirtualBox 不会将 inotify 事件转发到 guest 系统。这可以通过以下插件之一修复:

  • vagrant-notify-forwarder
  • vagrant-fsnotify

  • 另见 https://serverfault.com/questions/453826/vagrant-shared-folder-and-file-change-events

    关于gradle - Vagrant 和 gradle 持续构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41025616/

    相关文章:

    java - Android Studio Gradle“文件 google-services.json 缺少模块根目录。没有它,Google 服务插件无法运行。”

    shell - 如何在不实际运行 "vagrant ssh"的情况下 ssh 到 vagrant ?

    mysql - 在 PhpStorm 中连接到 vagrant 机器上的 MySQL 数据库

    gradle - 如果添加为依赖项,则不执行Gradle任务

    gradle - 在 codecov 中处理覆盖率报告时出错

    android - Jacoco 覆盖率报告问题

    java - 在 digitalocean 上运行带有 spring-boot 和 gradle 的 java 应用程序

    vagrant - 包装一个新的底盒

    mysql - 在 bash 脚本中转义 mysql 引号

    vagrant puppetlabs-mysql Mysql_grant 失败