热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Gradle+IntelliJ:普通Java应用程序中的HotSwap

如何解决《Gradle+IntelliJ:普通Java应用程序中的HotSwap》经验,您有什么比较好的解决方法?

对于纯Java / Swing应用程序,我目前正在将ant buildscript迁移到gradle build。

当我启动并快速运行它时,在IntelliJ IDEA中进行调试时不再需要重新编译的类中进行更改

我所有的构建/运行操作都委托给gradle。

我考虑过的事情:

这与如何在gradle和jetty的调试模式下启用热交换不是重复的?,我正在使用独立的Java应用程序,而不是Spring

出于同样的原因,我认为https://github.com/thomas-adriano/gradle-hot-swap不适用

我希望/build/classes/无论使用哪种构建工具,HotSwap机制都能检测到变化

我将idea 插件添加到build.gradle中,希望它能解决类路径的任何潜在混乱

当使用内置的IntelliJ-Compiler时,热交换可以按预期工作

因此,我整理了这个MVCE来说明我的问题:

build.gradle:

group 'hotswaptest'
version '1.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'idea'

sourceCompatibility = 1.8

src / main / java / 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);
            }
        });
    }
}

为了测试热交换,我将new Color(r, 1-r, r)-bit 更改为new Color(r, r, r),然后按Ctrl+Shift+F9


推荐阅读
author-avatar
mobiledu2502855777
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有