对于普通的Java / Swing应用程序,我目前正在将ant构建脚本迁移到gradle构建。
当我快速启动并运行时,在IntelliJ IDEA中调试时,重新编译的类中的更改不再被接收。
我的所有构建/运行操作都是delegated to gradle。
我考虑过的事情:
/build/classes/
中的更改,而不管使用的构建工具是什么idea
plugin添加到我的build.gradle中,希望它能解决任何潜在的类路径混淆问题所以我把这个MVCE放在一起来说明我的问题:
的build.gradle:
group 'hotswaptest'
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'idea'
sourceCompatibility = 1.8
的src /主/爪哇/ HotSwappingOrNot.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class HotSwappingOrNot {
public static void main(String[] args) {
JFrame asdf = new JFrame();
asdf.setContentPane(new JLabel("asdf"));
asdf.setVisible(true);
asdf.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
float r = (float) Math.random();
Color c = new Color(r, 1-r, r);
asdf.setBackground(c);
}
});
}
}
为了测试hotswapping,我将new Color(r, 1-r, r)
-bit更改为new Color(r, r, r)
并按Ctrl+Shift+F9
。