springboot 構建開發環境與常用命令參數

歷史背景

J2EE笨重的開發,繁多的配置、低下的開發效率、復雜的部署流程,第三發技術集成難度大。
解決
“Spring全家桶”時代
Spring Boot -> J2EE一站式解決方案
Spring Cloud ->分布式整體解決方案

簡介

Spring Boot 來簡化Spring應用開發的一個框架,約定大于配置
Spring Boot 的底層用的就是Spring
Spring Boot可以輕松創建可以運行的獨立的,基于生產級Spring的應用程序。大大減少了Spring的手動配置
spring boot 它的設計目的就是為例簡化開發,開啟了各種自動裝配,開箱即用
使用Maven或Gradle構建工具

Java三大構建工具:Ant、Maven和Gradle

Maven

以林神的商城項目為例https://github.com/linlinjava/litemall
使用idea或vcode拉去代碼,按照github的快速啟動說明操作

image.png

一般后臺和后臺管理系統是必須的,先從這一部分開始
后臺管理web頁

Spring Boot提供了一種超級簡單的部署方式,就是直接將應用打成jar包,在生產上只需要執行java -jar就可以運行了。

一般情況下,如果我們的應用只是作為一個服務、工具類、API的形式存在,那么我們一般將其打包成jar包。而如果我們的應用是一個Web應用,都是打成war包(上面所說的后臺管理web頁),進行發布,同時如果我們的服務器是Tomcat等輕量級服務器,一般都打成war包進行發布;

命令參數

上面列舉的只是比較通用的命令,其實很多命令都可以攜帶參數以執行更精準的任務。
Maven命令可攜帶的參數類型如下:

  1. -D 傳入屬性參數
    比如命令:
    mvn package -Dmaven.test.skip=true
    以-D開頭,將maven.test.skip的值設為true,就是告訴maven打包的時候跳過單元測試。同理,mvn deploy-Dmaven.test.skip=true代表部署項目并跳過單元測試。
  2. -P 使用指定的Profile配置
    比如項目開發需要有多個環境,一般為開發,測試,預發,正式4個環境,在pom.xml中的配置如下:
<profiles>
      <profile>
             <id>dev</id>
             <properties>
                    <env>dev</env>
             </properties>
             <activation>
                    <activeByDefault>true</activeByDefault>
             </activation>
      </profile>
      <profile>
             <id>qa</id>
             <properties>
                    <env>qa</env>
             </properties>
      </profile>
      <profile>
             <id>pre</id>
             <properties>
                    <env>pre</env>
             </properties>
      </profile>
      <profile>
             <id>prod</id>
             <properties>
                    <env>prod</env>
             </properties>
      </profile>
</profiles>
 
......
 
<build>
      <filters>
             <filter>config/${env}.properties</filter>
      </filters>
      <resources>
             <resource>
                    <directory>src/main/resources</directory>
                    <filtering>true</filtering>
             </resource>
      </resources>
 
      ......

</build>

profiles定義了各個環境的變量id,filters中定義了變量配置文件的地址,其中地址中的環境變量就是上面profile中定義的值,resources中是定義哪些目錄下的文件會被配置文件中定義的變量替換。
通過maven可以實現按不同環境進行打包部署,命令為:
mvn package -P dev
復制代碼其中dev為環境的變量id,代表使用Id為dev的profile。

  1. -e 顯示maven運行出錯的信息
  2. -o 離線執行命令,即不去遠程倉庫更新包
  3. -X 顯示maven允許的debug信息
  4. -U 強制去遠程更新snapshot的插件或依賴,默認每天只更新一次

Gradle

Gradle是一個基于Apache Ant和Apache Maven概念的項目自動化建構工具。

它使用一種基于Groovy的特定領域語言(DSL)來聲明項目設置,拋棄了基于XML的各種繁瑣配置。

支持的語言有Java、Groovy和Scala

Gradle JVM 的富有突破性構建工具,可以通過編程式的編寫構建腳本,非 xml 的方式構建項目,適用于相對復雜 Java 項目構建。

特性:

  • 對已有的 maven 和 ivy 倉庫的全面支持
  • 支持傳遞性依賴管理,而不需要遠程倉庫或者 pom.xml 或者 ivy 配置文件
  • ant 式的任務和構建是 gradle 的第一公民
  • 基于 groovy,其 build 腳本使用 groovy dsl 編寫

下載安裝

https://gradle.org/releases/

驗證安裝

gradle -v
image.png
image.png

java.sql.SQLException: Access denied for user 'litemall'@'localhost' (using password: YES)


image.png

啟動小商場和管理后臺的后端服務

打開命令行,輸入以下命令

cd litemall
mvn install
mvn clean package
java -Dfile.encoding=UTF-8 -jar litemall-all/target/litemall-all-0.1.0-exec.jar
啟動管理后臺前端

打開命令行,輸入以下命令

npm install -g cnpm --registry=https://registry.npm.taobao.org
cd litemall/litemall-admin
cnpm install
cnpm run dev
此時,瀏覽器打開,輸入網址http://localhost:9527, 此時進入管理后臺登錄頁面。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容