Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Intellij Idea编译器重新编译已编译的项目_Java_Maven_Intellij Idea - Fatal编程技术网

Java Intellij Idea编译器重新编译已编译的项目

Java Intellij Idea编译器重新编译已编译的项目,java,maven,intellij-idea,Java,Maven,Intellij Idea,我使用maven命令清理、构建整个项目、创建war并部署到服务器。我不能使用Intellij来做这件事,因为我只有社区版。它在与intellij相同的目录中构建项目 为了加快速度,我编写了一个脚本,在本地“目标”目录中查找比服务器中更新的编译文件,并复制它们。这一切都可以正常工作,但问题是Intellij不认为用maven编译的类是它应该跳过的类,并重新构建整个项目 目前它的工作原理如下: 在终端中使用maven手动构建整个项目 返回intellij->制作项目 重建一切 运行脚本->它交换所有

我使用maven命令清理、构建整个项目、创建war并部署到服务器。我不能使用Intellij来做这件事,因为我只有社区版。它在与intellij相同的目录中构建项目

为了加快速度,我编写了一个脚本,在本地“目标”目录中查找比服务器中更新的编译文件,并复制它们。这一切都可以正常工作,但问题是Intellij不认为用maven编译的类是它应该跳过的类,并重新构建整个项目

目前它的工作原理如下:

  • 在终端中使用maven手动构建整个项目
  • 返回intellij->制作项目
  • 重建一切
  • 运行脚本->它交换所有文件
  • 我正在努力实现的目标:

  • 使用maven在终端中手动构建整个项目
  • 回到intellij。更改一个文件->创建项目
  • 只编译一个java文件
  • 运行脚本->它只交换一个.class文件

  • 所以问题是,如何使intellij将已使用外部工具编译的文件视为已编译文件?

    您没有。IntelliJ IDEA有自己的增量编译系统,它跟踪正在编译的文件之间的依赖关系,并为每一组更改重新编译最小的类集。使用Maven或Gradle等工具进行外部编译不会更新IntelliJ IDEA的增量编译数据库。正因为如此,IntelliJ IDEA无法认识到这样一个事实,即类已经用外部工具编译过,并且将重新编译。

    这让我困扰了很长时间。最后,我找到了这个。
    您可以选择在运行程序时使用InteliJ还是gradle进行编译。在gradle项目下,默认情况下使用gradle进行构建。

    如果IDEA自己的增量编译系统已经生成了所有类文件,为什么无法使用这些已经生成的类文件启动应用程序。为什么Run或Debug函数必须再次完成构建它的整个过程?我有一个应用程序,需要30秒才能最终启动,这很烦人。我使用dcevm来帮助我将更改应用于正在运行的程序,但是对于我必须重新启动的程序,启动它们的时间太长。是否有可能找到.class目录并将其添加到构建类路径中?再一次:Run或Debug函数需要确保您的类是最新的,并且它无法识别类已使用外部工具编译的事实。我不使用外部工具编译,我也不喜欢gradle和maven之类的东西,比如瘟疫。那么你面临的问题与问题的内容完全无关。问题是在命令行中使用maven时的重复编译。如果您正在使用IDEA的内置make功能,那么是的,它确实知道需要重新编译哪些文件,并且只重新编译这些文件。如果这对您不起作用,那么您应该联系支持团队或在这里问另一个问题来调查原因。但是,这又一次不是最初的问题所涉及的。