maven+jetty+idea+jrebel 實現專案熱部署

SeeMoonUp發表於2019-03-02

tags:

  • maven
  • jetty
  • idea
  • jrebel
  • java

maven+jetty+idea+jrebel 實現專案熱部署

開發環境

開發過程中: 修改java或者工程檔案 需要重新對工程進行build deploy耗時太久 到無法忍受

如何實現一次部署之後,後面的修改全部熱部署呢?

  1. 使用jrebel實現
  2. web容器使用的是jetty
  3. 專案管理使用的maven
  4. ide使用的是idea

實現步驟

  1. 開啟idea中的settings-->plugins 搜尋jrebel --> browse repositories
  2. install 開始進入下載 下載完成之後應用上 並且重啟idea
  3. 因為jrebel是收費軟體 破解連結如下:http://blog.lanyus.com/archives/317.html 正常啟動後的樣式:

破解工具

啟用路徑
server地址:http://127.0.0.1:8888/lemon lemon為任意字串 email: 隨意輸入

啟用

  1. 對於需要熱部署的專案進行如下操作 右擊專案名稱 選中jrebel生成配置檔案 正確的配置檔案內容如下:
<?xml version="1.0" encoding="UTF-8"?>

<!--
  This is the JRebel configuration file. It maps the running application to your IDE workspace, enabling JRebel reloading for this project.
  Refer to https://manuals.zeroturnaround.com/jrebel/standalone/config.html for more information.
-->
<application generated-by="intellij" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://update.zeroturnaround.com/jrebel/rebel-2_1.xsd">

	<classpath>
		<dir name="C:/workspaces***************/target/classes"> <!--為專案的編譯路徑-->
		</dir>
	</classpath>

	<web>
		<link target="/">
			<dir name="C:/workspace**********src/main/webapp"><!--為專案的路徑-->
			</dir>
		</link>
	</web>

</application>

複製程式碼
  1. 在idea選單欄中 選中view >tool 如下 將兩個工具欄均展示出來:

view
6. 在jrebel中配置你需要熱部署的專案 只需配置主工程即可 base等依賴據不需勾選:

jrebel
7. 配置完成之後會在啟動指令碼旁邊出現兩個圖示 分別為jrebel run和jrebel debug:

maven+jetty+idea+jrebel 實現專案熱部署
8. 程式碼中需要將jetty自身的熱部署禁用

<plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>8.1.16.v20140903</version>
        <configuration>
          <stopKey>stop</stopKey>
          <stopPort>9999</stopPort>
          <scanIntervalSeconds>0</scanIntervalSeconds><!--使用jetty自身的熱部署:1 不用為0-->
          <contextXml>${project.basedir}/src/main/resources/jetty-context.xml</contextXml>
          <webApp>
            <contextPath>/</contextPath>
          </webApp>
          <connectors>
            <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
              <port>8001</port>
              <maxIdleTime>60000</maxIdleTime>
            </connector>
          </connectors>
        </configuration>
      </plugin>
複製程式碼
  1. 當點選jrebel debug時 啟動log出現如下圖內容則標誌著配置成功

    部署

  2. 啟動之後體驗一下熱部署吧 針對單個檔案進行的熱部署: ctrl+shift+f9 針對修改的所有檔案進行的熱部署: ctrl+f9 執行之前別忘記ctrl + s

  3. 當執行上面的命令是 出現如下的內容 則表示部署成功:

部署成功

log中輸出

未經作者允許 請勿轉載,謝謝 :)

相關文章