gpt4 book ai didi

tomcat - 当外部更改文件时,IntelliJ 可以更新 Tomcat 上的资源吗?

转载 作者:行者123 更新时间:2023-11-28 21:48:11 24 4
gpt4 key购买 nike

我的公司选择使用 IntelliJ 进行开发并部署到本地 Tomcat 服务器。我一直在 gVim 上进行开发,不想改变。

当我们使用 eclipse 时,我能够在外部更改文件时让 eclipse 重新发布资源。 (我相信设置是 Refresh using native hooks or polling)这很棒,因为我更喜欢使用命令行工具而不是集成工具。

我们正在使用 IntelliJ 来管理服务器,我对此很满意,但我不想打乱我当前的工作流程。

我知道 IntelliJ 可以很好地保持同步,并且会在我专注于它时更新文件,并在我离开框架时刷新它们。

有没有办法让 intelliJ 更新已从外部更改的资源(Gvim、cli git...ext)而不移动到它?

最佳答案

遗憾的是,我一直无法找到一种方法来监视外部更改并更新 IntelliJ 中的 Tomcat 服务器。

我已经使用 grunt 实现了一个解决方法。 (一个 node.js 任务运行器)

此解决方法背后的理论很简单:

  • Tomcat 服务于一场爆炸性的 war
  • grunt 查看我的前端文件
  • 当文件更改时,grunt 将我的前端文件移入爆炸 war

这样做的一些好处是:

  • 适用于任何外部编辑器/工具/ect(vim、sublime text、nano、cli git 以及您能想到的任何其他工具)
  • 您不需要进入 intelliJ 来更新您的资源。
  • 无需 java 即可设置此解决方案。

缺点是

  • 你有一个额外的进程在运行。
  • 您还有另一种工具可以处理。
  • 你需要在爆炸式 war 中部署前端的东西(在我看来并没有那么糟糕)

要了解有关 grunt 的更多信息并进行设置,您可以访问 gruntjs.com .

此解决方法使用两个插件

  • grunt-contrib-copy
  • grunt-contrib-watch

首先,您设置一个任务,将您的文件复制到您的 exploded war 中。这将使用 grunt-contrib-copy 插件并且可能需要一些技巧,但还不错。我的看起来像这样:

copy:{
webfilesToOutdir:{
files: [
{expand: true, src: ['WebContent/**'],
dest: '../out/artifacts/attensity-q/exploded/attensity-q.war',
rename: function(dest, src){
var ret = dest+"/"+ src.replace('WebContent/', '');
return ret;
}
}
]
}
}

接下来您将需要一个任务来监视您的文件并在发生变化时运行副本。这将使用 grunt-contrib-watch,这也没什么坏处,您只需要调整路径即可。这是我的:

watch: {
web: {
files: ['WebContent/**', '!WebContent/less/**'],
tasks: 'copy:webfilesToOutdir',
interrupt: true
}
}

希望对您有所帮助。我已经使用这个解决方案一段时间了,它的工作做得很好。祝你好运,绅士们。

关于tomcat - 当外部更改文件时,IntelliJ 可以更新 Tomcat 上的资源吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26184739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com