小编Prz*_*wka的帖子

如何使IntelliJ IDEA使用javac for Java和scalac for Scala?

在我的IDEA项目中,Scala模块依赖于Java模块.当我尝试编译Scala模块时,只触发scalac.它编译Java和Scala源代码.

我希望scalac只编译Scala模块,因为javac对Java源代码来说要快得多(而且我的Java项目很重要). 如何让IDEA为不同的模块使用不同的编译器?


我的解决方法是(对于Java模块的每个依赖项):

  1. 删除项目配置中的模块依赖项
  2. 将依赖项添加到适当的编译输出目录"MyJavaModule/target/classes"

显然我对此并不满意,因为每次重新导入Maven项目时,我都需要重复所有这些以便快速编译.我希望有人知道更好的方法.


澄清:我想强调,像SBT或Maven这样的工具无法解决我的问题.它不仅仅是编译.它是关于IDEA中的编译,对于像Scala Worksheet或从IDEA运行单元测试所需.我的目标是使用SBT的编译速度获得全方位的IDEA细节(语法高亮,智能自动完成,自动导入等).现在我必须要么容忍很长的编译时间(由于我的Java模块的依赖性),要么在SBT中使用裸机REPL和测试.

java compiler-construction scala compilation intellij-idea

10
推荐指数
1
解决办法
1677
查看次数

如何在不影响 ECS 服务的情况下捕获 JVM 退出时的堆转储?

我的基于 JVM 的应用程序在 Amazon ECS 上运行。在某些我无法在测试环境中重现的情况下,它会因 OutOfMemoryError 而崩溃。我想捕获 JVM 堆转储(使用HeapDumpOnOutOfMemoryError)来查看发生了什么。但有一个问题 - 因为我的应用程序使用大量内存,堆转储需要很长时间,并且 ECS 会在中间杀死容器,因为运行状况检查失败。我最终得到了一个无法使用的、被截断的转储文件。

我可以通过更改运行状况检查配置来获得正确的堆转储,但这可能会影响 ECS 服务,因为如果没有良好的运行状况检查,集群可能会运行无响应的实例。

我正在寻找一种方法,可以让我自动捕获堆转储,同时对生产集群的影响尽可能小。

amazon-ecs

5
推荐指数
1
解决办法
6450
查看次数