IDEA修改java源碼不用重啓直接生效配置
參考 : IDEA SpringBoot 熱部署+html修改無需make自動刷新==>https://my.oschina.net/yejunxi/blog/845752
spring boot熱部署,修改java代碼不重啓==>https://blog.csdn.net/lmx125254/article/details/81477664
1. 給項目的pom.xml添加spring-boot-devtools插件依賴
<!-- springboot熱佈署工具 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>true</scope> <!-- 這個需要爲 true 熱部署纔有效 ,另外雖然虛擬機重啓快很多,但是看到日誌打印還是很不爽, 可以在application.yml或application.properties中配置spring.devtools.restart.enabled=false讓修改java代碼不重啓也也直接生效. --> <optional>true</optional> </dependency> <build> <plugins> <!-- 這個插件,可以將應用打包成一個可執行的jar包,如果不添加該插件 ,則執行時報錯: .\springbootdemo-0.0.1-SNAPSHOT.jar中沒有主清單屬性 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.example.demo.MySpringBootApplication</mainClass> <fork>true</fork> <!-- 如果沒有該配置,devtools可能不會生效 --> </configuration> </plugin> </plugins> </build>
在idea中建springboot初始化項目時也可以直接選中
2. File | Settings | Build, Execution, Deployment | Compiler | Build project automatically 打勾
另外建議開啓自動導包功能 File | Settings | Editor | General | Auto Import | Insert imports on paste All
其實上面的操作就是就是項目剛建立時, idea彈出的 Enable Auto-Import ,所以一開始要是沒有選擇, 也可以手動去開啓自動編譯 , 當然前提是那個Show import popup
3. Shift+Ctrl+Alt+/ 啓用 compiler.automake.allow.when.app.running
4.application.properties中配置
# 在pom.xml中添加spring-boot-devtools後,配置修改java代碼不重啓也生效 spring.devtools.restart.enabled=false #設置重啓的目錄,添加那個目錄的文件需要restart spring.devtools.restart.additional-paths=src/main/java #排除那個目錄的文件不需要restart #spring.devtools.restart.exclude=static/**,public/**
5. IDEA修改文件直接自動更新
右上角 Edit Configurations... | On 'Update' action 和 On frame deactivation | 都改成 Update classes and resources
經過親測, 發現On frame deactivation 改成 Update classes and resources才真正有效,所以修改java代碼真正編譯的觸發時機在切換到非IDEA應用時,
而此時如果你的操作過快 ,可能尚未編輯完全 ,還會是原來的代碼 , 導致你以爲修改未生效。
也就是說切換到瀏覽器後不建議馬上操作, 最好隔2秒左右讓IDEA 編譯一下java源碼, 當然如果手動按CTRL+F9的話, 那就沒有任何問題了。
而On 'Update' action 在配成 Update classes and resources後 ,修改java源文件還是不能重動編譯, 只有靜態資源文件有效果 , 按道理手動CTRL + S 後就觸發編輯纔是完美狀態 , 但事實並非如此 。
(當然以上現象有可能僅是個人電腦現象, 不代表衆生相)
6. 根據上述5步操作, 在eclipse中只需要1 pom.xml配置 和 4 devtool屬性配置成false就行了,已親測驗證,不過不要忘了eclipse中Project Build Automatically 下面這個勾可得打卡, 當然這只是額外補充,一般沒有傻子會把它取消掉。