1. 程式人生 > >SpringBoot建立多模組方式以及打包方式

SpringBoot建立多模組方式以及打包方式

  

 

  springboot重構多模組的步驟

  模型層:model

  持久層:persistence

  表示層:web

  步驟:

  正常建立一個springboot專案

  修改建立專案的pom檔案,將jar修改為pom

  選擇根專案,New–Module–Maven–Next–ArtifactId中輸入model名,比如web --Next–Finish完成模組的建立

  將根專案src/java下的包資訊以及屬性檔案,分別移動到新建的web模組中對應的目錄下,然後根專案的src目錄就變成一個空目錄,將其刪除,在web下面,啟動執行專案,專案成功啟動,說明構建成功了

  以步驟3的方式,繼續建立其他模組persistence模組、model模組

  到此三個模組web模組、persistence模組、model模組就已經建立完成,它們的依賴關係是:web 依賴於persistence,persistence 依賴於model。三個模組建立完成後,會產生三個對應的pom.xml檔案。然後根據模組依賴關係建立多模組關係,

  在web.xml中新增如下依賴關係:

  dependencies

  dependency

  groupIdcom.lhf/groupId

  artifactIdpersistence/artifactId

  version0.0.1-SNAPSHOT/version

  /dependency

  /dependencies

  在persistence.xml中新增如下依賴:

  dependencies

  dependency

  groupIdcom.lhf/groupId

  artifactIdmodel/artifactId

  version0.0.1-SNAPSHOT/version

  /dependency

  /dependencies

  到此就完成了springboot多模組重構的搭建springboot專案打包

  一、命令方式打成jar包 步驟

  在windows環境下,啟動一個cmd命令視窗,然後複製將要打包的專案的路徑,cd 專案路徑 進入專案下面

  執行命令打包,命令:mvn -Dmaven.test.skip -U clean package

  此時可能打包失敗,原因是:缺少spring-boot-maven-plugin外掛,沒有找到入口類Main class,解決辦法:進入根專案的pom.xml檔案中,新增如下資訊:

  build plugins plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId configuration mainClasscom.lhf.SpringbootModelsDemoApplication/mainClass /configuration /plugin /plugins /build

  然後再次執行命令:mvn -Dmaven.test.skip -U clean package

  此時可能還會報錯,找不到相關的類,解決辦法,再次修改根專案的pom.xml檔案,新增相關的依賴資訊,如下:

  build

  plugins

  plugin

  groupIdorg.springframework.boot/groupId

  artifactIdspring-boot-maven-plugin/artifactId

  dependencies

  dependency

  groupIdcom.lhf/groupId

  artifactIdmodel/artifactId

  version0.0.1-SNAPSHOT/version

  /dependency

  /dependencies

  configuration

  mainClasscom.lhf.SpringbootModelsDemoApplication/mainClass

  /configuration

  /plugin

  /plugins

  /build

  然後再一次執行打包命令,命令:mvn -Dmaven.test.skip -U clean package,此時可能出現新的問題,它會嘗試下載相關的jar包,會提示snapshot倉儲中沒有這個包的資訊,解決辦法執行另一個命令,命令:mvn -Dmaven.test.skip -U clean install,你會發現其實還是錯誤的,你崩潰沒有?

  其實上面的方法本就是錯誤的操作方法,在多模組下,我們的啟動類是在Web模組下,因此我們要將根專案中pom.xml檔案的如下資訊,剪下到Web模組下的pom.xml檔案中,如下:

  build

  plugins

  plugin

  groupIdorg.springframework.boot/groupId

  artifactIdspring-boot-maven-plugin/artifactId

  configuration

  mainClasscom.lhf.SpringbootModelsDemoApplication/mainClass

  /configuration

  /plugin

  /plugins

  /build

  然後執行打包命令,命令:mvn -Dmaven.test.skip -U clean package, 打包之後,生成的jar包就會位於web模組下的target目錄中

  打包成功之後,可以執行命令:java -jar 專案jar包.jar 啟動專案二、命令方式打war包 步驟

  將springboot專案打包成war包步驟:

  在Web模組下的pom.xml檔案中,新增packaging資訊為:war

  然後執行打包命令:mvn -Dmaven.test.skip -U clean package 進行打包,此時它會提醒你增加WEB-INF/web.xml檔案,此時你需要到Web模組下,建立webapp/WEB_INF/web.xml檔案,將檔案建立好即可

  然後再次執行打包命令,進行打包,打包成功之後,war位於web模組下的target目錄中,cmd命令進入target目錄下,執行java -jar 專案war包.war 啟動執行專案三、使用maven命令啟動專案

  cmd命令進入專案的目錄,執行命令:mvn spring-boot:run 啟動專案,此時會提醒你沒有找到Main class,解決辦法,切換到Web模組下,並在pom.xml檔案中,新增如下資訊:

  build

  plugins

  plugin

  groupIdorg.springframework.boot/groupId

  artifactIdspring-boot-maven-plugin/artifactId

  configuration

  mainClasscom.lhf.SpringbootModelsDemoApplication/mainClass

  /configuration

  /plugin

  /plugins

  /build

  再次執行:mvn spring-boot:run命令,再次啟動,此時還會報錯,提示你jar沒有找到,沒有找到相關的依賴,解決辦法:退回到根目錄,執行命令:mvn -Dmaven.test.skip -U clean install,進行相關依賴安裝,此時將會提示你已經成功,再次進入Web模組目錄下,執行:mvn spring-boot:run進行啟動專案,就能成功啟動

  解決報錯問題

  如果遇到如下錯誤資訊:

  [ERROR] Unknown lifecycle phase “.test.skip”. You must specify a valid lifecycle phase or a goal in the format : or :[:]:. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. - [Help 1]

  解決辦法:分別執行以下命令:

  mvn install

  mvn compiler:compile

  mvn org.apache.maven.plugins:maven-compiler-plugin:compile

  mvn org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile

  即可解決