idea編譯即時生效配置 temp[臨時開放]

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 後就觸發編輯纔是完美狀態 , 但事實並非如此 。

(當然以上現象有可能僅是個人電腦現象, 不代表衆生相)

 Idea--Tomcate配置中的On Upate Action 與 On Frame Deactivation==》https://www.cnblogs.com/zhangguangju/p/7027904.html

IDEA 服務器熱部署詳解(On Update action/On frame deactivation)==》https://blog.csdn.net/w15321271041/article/details/80597962

6. 根據上述5步操作, 在eclipse中只需要1 pom.xml配置 和 4 devtool屬性配置成false就行了,已親測驗證,不過不要忘了eclipse中Project Build Automatically 下面這個勾可得打卡, 當然這只是額外補充,一般沒有傻子會把它取消掉。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章