Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.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构建时间太长。格雷德尔帮不上忙_Java_Intellij Idea_Gradle - Fatal编程技术网

Java Intellij构建时间太长。格雷德尔帮不上忙

Java Intellij构建时间太长。格雷德尔帮不上忙,java,intellij-idea,gradle,Java,Intellij Idea,Gradle,我对IDEA在启动应用程序之前需要很长的构建时间感到沮丧。我确实使用DCEVM比普通热插拔更喜欢动态更改代码,但如果我真的需要多次启动我的应用程序,这是行不通的 IDEA应该能够进行增量编译,但我没有看到它。我看不到启用此功能的选项。启动或启动应用程序调试几乎需要半分钟。一定要花这么长时间吗?理论上,IDEA已经生成了所有类文件,除了刚刚编辑的源文件。IDEA应该能够填补这几个空白,并使应用程序几乎立即运行。什么是阻碍,为什么它坚持它必须重新编译每一个源文件? 另外,我在IDEA中使用Eclip

我对IDEA在启动应用程序之前需要很长的构建时间感到沮丧。我确实使用DCEVM比普通热插拔更喜欢动态更改代码,但如果我真的需要多次启动我的应用程序,这是行不通的

IDEA应该能够进行增量编译,但我没有看到它。我看不到启用此功能的选项。启动或启动应用程序调试几乎需要半分钟。一定要花这么长时间吗?理论上,IDEA已经生成了所有类文件,除了刚刚编辑的源文件。IDEA应该能够填补这几个空白,并使应用程序几乎立即运行。什么是阻碍,为什么它坚持它必须重新编译每一个源文件? 另外,我在IDEA中使用Eclipse编译器,因此它可以容忍一些不可编译的源文件。我必须这样做,因为这是一棵巨大的java文件树,我无法控制每一个文件

然后我看到Gradle可能有增量编译。所以我想重新创建我的项目,这次是和Gradle。我很难弄清楚它是如何工作的,它是如何集成的,什么样的任务从一个想法转移到另一个想法(如果有的话)。即使在IDEA中使用Gradle创建一个简单的骨架测试应用程序也非常令人沮丧。到处都是模糊的东西,让你猜不透。关于喷气式飞机的教程几乎毫无用处。我找不到一个简单明了的例子来解释它是如何工作的。我看到一些演示说,点击这里,这里,那里,但是我这边的结果和我看到的不一样

例如,Gradle抱怨说它找不到junit jar。好的,我进入项目设置,尝试将junit jar添加到类路径中。在库下,我看到了一个条目“Gradle:junit:junit:4.11”。但还有第二个问题:“junit-4.11”。为什么是两个?我可以删除一个吗?为什么这个词是动词,冒号这个冒号那个,等等。 因此,我将junit jar文件添加到这两个文件中。 但是在Gradle项目窗口中,我看到了Gradle项目设置的分层分解,verification->test。然后应该运行我创建的测试类

FAILURE: Build failed with an exception.
* What went wrong:
Could not resolve all dependencies for configuration ':testCompileClasspath'.
> Could not resolve junit:junit:4.11.
  Required by:
      xpert_client4:xpert_client4:1.0-SNAPSHOT
   > No cached version of junit:junit:4.11 available for offline mode.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
“无法解析junit:junit:4.11”

格拉德尔非常令人沮丧。如果我所要做的就是在一个大项目中启动一个main(),为什么我要经历使用这个gradle系统的麻烦,它提供了我不需要的东西?为什么它如此复杂、模糊和混乱

Android项目也是如此。IDEA可以在没有Gradle的情况下编译并运行Android应用程序。只要在设置时避免任何渐变,它就可以正常工作

此外,我们还需要做很多事情来加速所谓的缓慢的梯度系统。这就是守护进程。并行化,显然你可以用两种方式设置它(为什么)。按需配置。全球化减少明斯克版本。离线(哦,不,不是那种一次又一次从互联网上下载jar文件的Maven产品)。jCenter。轮廓它一直在继续。所有这些变通办法,黑客,调整,调整。 对一个可行的创意项目进行分级有什么好处吗?如果我经历了所有这些麻烦,我会得到更快的构建和启动时间吗?我是否可以完全避免Gradle,并且永远避免(希望它不会以某种方式成为强制性的)

我从80年代就开始编码了。我用过各种各样的系统。我已经建立了自己的构建系统。我不是新手。我也讨厌RTFM,如果那些FM没有切中要害,没有很好地解释事情——就像那些写它的人,他们自己并不真正理解它一样——他们知道要按什么按钮让它运行,就是这样。 我发现这是我很久以来看到的最令人沮丧的事情之一。以前我尝试过的可怕的构建系统是Maven,从那以后我就像瘟疫一样避免了。这些系统缺乏清晰的思维是令人震惊的

因此,除了这些挫折之外,我想要的是:是否值得找出Gradle并应用所有的变通方法和调整,以便我可以在经历这些痛苦后,享受更快的应用程序构建和启动时间

或者,我最好完全避免Gradle,而是将应用程序的启动放在一个循环中,这样每次退出应用程序时,它都会重新运行main()。然后,在可能的情况下,我将使用DCEVM动态编码

最后,我忘了提。启用自动内置IDEA的效果非常糟糕。构建似乎总是需要一次又一次地重新构建每个文件。将build设置为automatic,它所做的就是在后台一次又一次地重复这个过程。没有任何事情是以异步方式发生的,当我编辑完一个源文件,开始调试应用程序时,IDEA已经提前在后台完成了任何构建,因为它在每一个微小的代码更改后都会重新执行整个过程。此外,它还使CPU不断达到接近100%的峰值。
IDEA是一个很棒的IDE,但整个编译过程是一场彻头彻尾的噩梦。

确保禁用Gradle缓存目录和IntelliJ项目目录中的防病毒保护。对我来说,这大大减少了Java编译时间,因为所有的中间文件和JAR都与Java构建相关。从Windows搜索索引中排除这些相同的目录也会有所帮助

截至2020年9月,这是应排除病毒扫描和Windows搜索索引的默认目录位置列表,已发布