1. 程式人生 > >Maven打包部署

Maven打包部署

9.png org app clip run png maven打jar pri jar包

Maven打Jar包

問題一

Eclipse突然SB告訴我類不存在還讓我導包進來O__O "…,但是我明明有這個類。
這是不要慌,通過在網上搜索得知:
由於eclipse的編譯是基於時間戳的判斷機制的。
因此當你按build all的時候有些eclipse認為時間戳沒有改變的類不會被編譯。 因此你可以先clean一下再編譯。這個時候eclipse會將所有的以前編譯信息清除然後編譯。
eclipse --->project ----->clean...選項將工程中的.class文件刪除,同時重新編譯工程,類似於jbuild中的rebuild。
見下圖Clean結束之後會自動進行Build

技術分享

技術分享

問題二

找不到主類或無法加載主類的問題
是因為.java文件不在項目的src路徑內,也就是說源代碼未被eclipse編譯,字節碼不存在無法運行了,在項目名上右鍵 -> Builder Path -> Configure Build Path -> 選擇Source面板,再點Add Folder, 把源代碼所在的包路徑的上層目錄加進來,而且如果你是把兩個類寫在一個文件裏的話,你在右鍵選擇Run As Java Appication 的時候,要把光標至於包括main方法的類上(相當於指定主類入口)。

技術分享

問題三

在打包之前配置maven的pom.xml 見下圖

  <build>
    <plugins>
      <plugin>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-maven-plugin</artifactId>
          <executions>
            <execution>
              <goals>
                  <goal>repackage</goal>
              </goals>
            </execution>
           </executions>
         </plugin>
    </plugins>
  </build>

問題四

cmd打包時出現錯誤
clean (default-clean) on project open: Failed to clean project: Failed to delete
這個是因為windows只會告訴你該文件被其他程序占用,但不會告訴是哪個!
一般情況下給Maven項目打包的話要先將tomcat給關掉,兒SpringBoot中內嵌tomcat的,所以不太好手動關掉。
在cmd下查找一下
查看所有端口占用情況:netstat -ano
查看指定端口占用情況:netstat -ano|findstr "8080"(通過這個可以找到Pid)

技術分享

查看Pid對應的進程:tasklist|findstr "123"(通過這個可以找到進程名)

技術分享

殺死進程:taskkill /f /t /im 進程名

技術分享

問題五

跳轉到應用的目錄下時使用mvn clean package報錯

因為target目錄下本身就是空的所以不用clean直接mvn package即可

然後在targe目錄下找到剛才打好的jar包
java -jar messagepush1-0.0.1-SNAPSHOT.jar 成功啟動SpringBoot

技術分享

將服務停止後用sftp傳輸到服務器上

Maven打包部署