Maven入門教程-創(chuàng)新互聯(lián)

Maven基礎(chǔ) 1.Maven簡介 1.1傳統(tǒng)項目管理狀態(tài)分析
  • jar包不統(tǒng)一,jar包不兼容

    創(chuàng)新互聯(lián)公司主要從事成都做網(wǎng)站、網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)碾子山,十余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
  • 工程升級維護(hù)過程操作繁瑣

1.2Maven是什么?
  • Maven的本質(zhì)是一個項目管理工具,將項目開發(fā)和管理過程抽象成一個項目對象模型(POM)

  • POM(Project Object Model): 項目對象模型

1.3Maven有什么用?
  • 項目構(gòu)建:提供標(biāo)準(zhǔn)的,跨平臺的自動化項目構(gòu)建方式

  • 依賴管理:方便快捷的管理項目依賴的資源(jar包),避免資源間的版本沖突問題

  • 統(tǒng)一開發(fā)結(jié)構(gòu):提供標(biāo)準(zhǔn)的,統(tǒng)一的項目結(jié)構(gòu)

2.下載與安裝
  • 官網(wǎng):http://maven.apache.org

  • 下載地址:http://maven.apache.org/download.cgi

  • Maven屬于綠色版軟件,解壓即安裝

  • 依賴Java,需要配置JAVA_HOME

  • 設(shè)置MAVEN自身的運行環(huán)境,需要配置MAVEN_HOME

  • 測試環(huán)境配置結(jié)果

    MVN
3.Maven基礎(chǔ)概念 3.1倉庫
  • 倉庫:用于存儲資源,包含各種jar包
  • 倉庫分類:
    • 本地倉庫:自己電腦上存儲資源的倉庫,連接遠(yuǎn)程倉庫獲取資源
    • 遠(yuǎn)程倉庫:非本機(jī)電腦上的倉庫,為本地倉庫提供資源
      • 中央倉庫:Maven團(tuán)隊維護(hù),存儲所有資源的倉庫
      • 游戲:部門/公司范圍內(nèi)存儲資源的倉庫,從中央倉庫獲取資源
  • 游戲的作用:
    • 保存具有版權(quán)的資源,包含購買或自主研發(fā)的jar
      • 中央倉庫中的jar都是開源的,不能存儲具有版權(quán)的資源
    • 一定范圍內(nèi)共享資源,僅對內(nèi)部開放,不對外共享

3.2坐標(biāo)
  • 什么是坐標(biāo)?

    • Maven中的坐標(biāo)用于描述倉庫中資源的位置
    • https://repo1.maven.org/maven2/
  • Maven坐標(biāo)主要組成

    • groupId:定義當(dāng)前Maven項目隸屬組織名稱(通常是域名反寫,例如:org.mybatis)

    • artifactId:定義當(dāng)前Mavne項目名稱(通常是模塊名稱,例如:CRM,SMS)

    • version:定義當(dāng)前項目版本號

    • packaging:定義該項目的打包方式

      junitjuint4.12
  • Mavne坐標(biāo)的作用

    • 使用唯一標(biāo)識,唯一性定位資源位置,通過該標(biāo)識可以將資源的識別與下載工作交由機(jī)器完成
3.3本地倉庫配置
  • Maven啟動后,會自動保存下載的資源到本地倉庫

    • 默認(rèn)位置

      ${user.name}/.m2/repository

      當(dāng)前目錄位置為登錄用戶名所在目錄下的.m2文件夾中

    • 自定義位置

      D:\maven\repository

      當(dāng)前目錄位置為D:\maven\repository文件夾中

3.4鏡像倉庫配置
  • 在setting文件中配置阿里云鏡像倉庫

    nexus-aliyunaliyun mavenhttp://maven.aliyun.com/nexus/content/groups/public/central
3.5全局setting與用戶setting區(qū)別
  • 全局setting定義了當(dāng)前計算機(jī)中Maven的公共配置
  • 用戶setting定義了當(dāng)前用戶的配置
4.第一個Maven項目(手工制作) 4.1項目代碼及測試用例

4.2創(chuàng)建pom.xml

注意:在src同層目錄下

4.0.0com.zeroproject-java1.0jarjunitjunit4.12
4.3Maven項目構(gòu)建命令
  • Maven構(gòu)建命令使用mvn開頭,后面添加功能參數(shù),可以一次執(zhí)行多個命令,使用空格分隔

    mvn compile 			#編譯
    mvn clean			    #清理
    mvn test			    #測試
    mvn package 			#打包
    mvn install 			#安裝到本地倉庫
4.4插件創(chuàng)建工程
  • 創(chuàng)建工程

    mvn archetype:generate
    	-DgroupId={project-packaging}
    	-DartifactId={project-name}
    	-DarchetypeArtifactId=maven-archetype-quickstart
    	-DinteractiveMode=false
  • 創(chuàng)建java工程

    mvn archetype:generate
    	-DgroupId={project-packaging}
    	-DartifactId={java-project}
    	-DarchetypeArtifactId=maven-archetype-quickstart
    	-Dversion=0.0.1-snapshot
    	-DinteractiveMode=false
  • 創(chuàng)建web工程

    mvn archetype:generate
    	-DgroupId={project-packaging}
    	-DartifactId={web-project}
    	-DarchetypeArtifactId=maven-archetype-webapp
    	-Dversion=0.0.1-snapshot
    	-DinteractiveMode=false

Mavne工程目錄結(jié)構(gòu)

5.第一個Maven項目(IDEA生成) 5.1配置Maven

5.2原型創(chuàng)建Web項目

5.3插件
4.0.0warorg.exampledesign-mode1.0-SNAPSHOT88javax.servletjavax.servlet-api3.1.0providedorg.apache.tomcat.maven tomcat7-maven-plugin 2.1  80  
6.依賴管理 6.1依賴配置
  • 依賴指當(dāng)前項目運行所需要的jar,一個項目可以設(shè)置多個依賴

  • 格式:

    javax.servletjavax.servlet-api3.1.0
6.2依賴傳遞
  • 依賴具有傳遞性:
    • 直接依賴:在當(dāng)前項目中通過依賴配置建立的依賴關(guān)系
    • 間接依賴:被引用資源的依賴如果依賴其他資源,當(dāng)前項目間接依賴其他資源
6.3依賴傳遞沖突問題
  • 路徑優(yōu)先:當(dāng)依賴中出現(xiàn)相同的資源時,層級越深,優(yōu)先級越低,層級越淺,優(yōu)先級越高
  • 聲明優(yōu)先:當(dāng)資源在不同層級被依賴時,配置順序靠前的覆蓋配置順序靠后的
  • 特殊優(yōu)先:當(dāng)同級配置了相同資源的不同版本,后配置的覆蓋先配置的

6.4可選依賴
  • 可選依賴指對外隱藏當(dāng)前所依賴的資源–不透明

  • 注意:可選依賴是控制該資源不被其他人看到

    javax.servletjavax.servlet-api3.1.0true
6.5排除依賴

注意:主動斷開間接依賴的資源

javax.servletjavax.servlet-api3.1.0providedjunitjunit4.12   org.hamcrest hamcrest-core 
6.6依賴范圍
  • 依賴的jar默認(rèn)情況可以在任何地方使用,可以通過scope標(biāo)簽設(shè)定其作用范圍
  • 作用范圍
    • 主程序范圍有效(main文件夾范圍內(nèi))
    • 測試程序范圍有效(test文件夾范圍內(nèi))
    • 是否參與打包(package指令范圍內(nèi))
scope主代碼測試代碼打包范例
compiler(默認(rèn))YYYlog4j
testYjunit
proviedeYYservlet-api
runtimeYjdbc
6.7依賴范圍傳遞性
  • 帶有依賴范圍的資源在進(jìn)行傳遞時,作用范圍將受到影響

7.生命周期與插件 7.1項目構(gòu)建生命周期
  • Maven構(gòu)建生命周期描述的是一次構(gòu)建過程經(jīng)歷了多少個事件

  • Maven對項目構(gòu)建的生命周期劃為3套
    • clean:清理工作
    • default:核心工作,例如編譯,測試,打包,部署等
    • site:產(chǎn)生報告,發(fā)布站點等

clean生命周期

  • per-clean 執(zhí)行一些需要在clean之前完成的工作
  • clean 移除所有上一次構(gòu)建生成的文件
  • post-clean 執(zhí)行一些需要在clean之后立刻完成的工作

default構(gòu)建生命周期

site構(gòu)建生命周期

  • pre-site 執(zhí)行一些需要在生成站點文檔之前完成的工作
  • site 生成項目的站點文檔
  • post-site 執(zhí)行一些需要在生成站點文檔之后完成的工作,并且為部署做準(zhǔn)備
  • site-deploy 將生成的站點文檔部署到特定的服務(wù)器上
7.2插件
  • 插件與生命周期內(nèi)的階段綁定,在執(zhí)行到對應(yīng)生命周期時執(zhí)行對應(yīng)的插件功能
  • 默認(rèn)Maven在各個生命周期上綁定有預(yù)設(shè)的功能
  • 通過插件可以自定義其他功能
  org.apache.maven.plugins maven-source-plugin 2.2.1    jar  generate-test-resources  
Maven高級 8.分模塊開發(fā)與設(shè)計 8.1工程模塊與模塊劃分

8.2具體拆分步驟

ssm_pojo拆分

  • 新建模塊
  • 拷貝原始項目中對應(yīng)的相關(guān)內(nèi)容到ssm_pojo模塊中
    • 實體類(User)
    • 配置文件(無)

ssm_dao拆分

  • 新建模塊
  • 拷貝原始項目中對應(yīng)的相關(guān)內(nèi)容到ssm_dao模塊中
    • 數(shù)據(jù)層接口(UserDao)
    • 配置文件:保留與數(shù)據(jù)層相關(guān)配置文件(3個)
      • 注意:分頁插件在配置中與SqlSessionFactoryBean綁定,需要保留
    • pom.xml:引入數(shù)據(jù)層相關(guān)坐標(biāo)即可,刪除springmvc相關(guān)坐標(biāo)
      • spring
      • mybatis
      • spring整合mybatis
      • mysql
      • druid
      • pagehelper
      • 直接依賴ssm_pojo(對ssm_pojo模塊執(zhí)行install指令,將其安裝到本地倉庫)

ssm_service拆分

  • 新建模塊
  • 拷貝原始項目中對應(yīng)的相關(guān)內(nèi)容到ssm_service模塊中
    • 業(yè)務(wù)層接口與實現(xiàn)類(UserService,UserServiceImpl)
    • 配置文件:保留與數(shù)據(jù)層相關(guān)配置文件(1個)
    • pom.xml:引入數(shù)據(jù)層相關(guān)坐標(biāo)即可,刪除springmvc相關(guān)坐標(biāo)
      • spring
      • Junit
      • spring整合Junit
      • 直接依賴ssm_dao(對ssm_dao模塊執(zhí)行install了指令,將其安裝到本地倉庫)
      • 間接依賴ssm_pojo(由ssm_dao模塊負(fù)責(zé)依賴關(guān)系的建立)
    • 修改service模塊spring核心配置文件名,添加模塊名稱,格式:applicationContext-service.xml
    • 修改dao模塊spring核心配置文件名,添加模塊名稱,格式:applicationContext-dao.xml
    • 修改單元測試引入的配置文件名稱,由單個文件修改為多個文件

ssm_controller拆分

  • 新建模塊
  • 拷貝原始項目中對應(yīng)的相關(guān)內(nèi)容到ssm_controller模塊中
    • 表現(xiàn)層控制器類與設(shè)置類(UserController,異常相關(guān)…)
    • 配置文件:保留與表現(xiàn)層相關(guān)配置文件(1個),服務(wù)器相關(guān)配置文件(1個)
    • pom.xml:引入數(shù)據(jù)層相關(guān)坐標(biāo)即可,刪除springmvc相關(guān)坐標(biāo)
      • spring
      • springmvc
      • jackson
      • servlet
      • tomcat
      • 直接依賴ssm_service(對ssm_service模塊執(zhí)行install了指令,將其安裝到本地倉庫)
      • 間接依賴ssm_pojo,ssm_dao
    • 修改web.xml配置文件中加載spring環(huán)境的配置文件名稱,使用*通配,加載所有applicationContext-開始的配置文件

分模塊開發(fā)

  • 模塊中僅包含當(dāng)前模塊對應(yīng)的功能類與配置文件
  • spring核心配置根據(jù)模塊功能不同進(jìn)行獨立制作
  • 當(dāng)前模塊所以來的模塊通過導(dǎo)入坐標(biāo)的形式加入當(dāng)前模塊后才可以使用
  • web.xml需要加載所有的spring核心配置文件
9.聚合
  • 作用:聚合用于快速構(gòu)建maven工程,一次性構(gòu)建多個項目/模塊。

  • 制作方式:

    • 創(chuàng)建一個空項目,打包類型定義為pom

      pom
    • 定義當(dāng)前模塊進(jìn)行構(gòu)建操作時關(guān)聯(lián)的其他模塊名稱

      ../ssm_controller../ssm_service../ssm_dao../ssm_pojo
  • 注意事項:參與聚合操作的模塊最終執(zhí)行順序與模塊間的依賴關(guān)系有關(guān),與配置順序無關(guān)

  • 模塊的類型:

    1. pom
    2. war
    3. jar

10.繼承 10.1模塊依賴關(guān)系維護(hù)

10.2繼承的作用和實現(xiàn)
  • 作用:通過繼承可以實現(xiàn)在子工程中沿用父工程中的配置

    • Maven中的繼承與java中的繼承相似,在子工程中配置繼承關(guān)系
  • 制作方式

    • 在子工程中聲明其父工程坐標(biāo)與對應(yīng)的位置
    com.zerossm1.0-SNAPSHOT../ssm/pom.xml
  • 在父工程中定義依賴管理

    org.springframeworkspring-context5.1.9.RELEASE
  • 在子工程中定義依賴關(guān)系,無需聲明依賴版本,版本參照父工程中依賴的版本

    org.springframeworkspring-context
    10.3繼承的資源

10.4繼承與聚合
  • 作用:
    • 聚合用于快速構(gòu)建項目
    • 繼承用于快速配置
  • 相同點:
    • 聚合與繼承的pom.xml文件打包方式均為pom,可以將兩種關(guān)系制作到同一個pom文件中
    • 聚合與繼承均屬于設(shè)計模塊,并無實際的模塊內(nèi)容
  • 不同點:
    • 聚合是在當(dāng)前模塊中配置關(guān)系,聚合可以感知到參與聚合的模塊有哪些
    • 繼承是在子模塊中配置關(guān)系,父模塊無法感知哪些子模塊繼承了自己
11.屬性

版本統(tǒng)一的重要性

屬性類別

  1. 自定義屬性
  2. 內(nèi)置屬性
  3. Setting屬性
  4. Java系統(tǒng)屬性
  5. 環(huán)境變量屬性

屬性類別:自定義屬性

  • 作用:等同于定義變量,方便統(tǒng)一維護(hù)

  • 定義格式:

    5.1.9.RELEASE4.12
  • 調(diào)用格式:

    org.springframeworkspring-context${spring.version}

屬性類別:內(nèi)置屬性

  • 作用:使用Maven內(nèi)置屬性,快速配置

  • 調(diào)用格式:

    ${basedir}
    ${version}
    

屬性類別:Setting屬性

  • 作用:使用Maven配置文件setting.xml中的標(biāo)簽屬性,用于動態(tài)配置

  • 調(diào)用格式:

    ${settings.localRepository}

屬性類別:Java系統(tǒng)屬性

  • 作用:讀取Java系統(tǒng)屬性

  • 調(diào)用格式:

    ${user.home}
  • 系統(tǒng)屬性查詢方式

    mvn help:system

屬性類別:環(huán)境變量屬性

  • 作用:使用Maven配置文件setting.xml中的標(biāo)簽屬性,用于動態(tài)配置

  • 調(diào)用格式:

    ${env.JAVA_HOME}
  • 環(huán)境變量屬性查詢方式

    mvn help:system
12.版本管理

工程版本區(qū)分

工程版本

  • SNAPSHOT(快照版本)
    • 項目開發(fā)過程中,為方便團(tuán)隊成員合作,解決模塊間互相依賴和實時更新的問題,開發(fā)者對每個模塊進(jìn)行構(gòu)建的時候,輸出的臨時性版本叫快照版本(測試階段版本)
    • 快照版本會隨著開發(fā)的進(jìn)展不斷更新
  • RELEASE(發(fā)布版本)
    • 項目開發(fā)到進(jìn)入階段里程碑后,向團(tuán)隊外部發(fā)布較為穩(wěn)定的版本,這種版本所對應(yīng)的構(gòu)件文件是穩(wěn)定的,即便進(jìn)行功能的后續(xù)開發(fā),也不會改變當(dāng)前發(fā)布版本內(nèi)容,這種版本稱為發(fā)布版本。

工程版本號約定

  • 約定規(guī)范:
    • <主版本><次版本><增量版本><里程碑版本>
    • 主版本:表示項目重大架構(gòu)的變更,如:spring5相較于spring4的迭代
    • 次版本:表示有較大的功能增加和變化,或者全面系統(tǒng)的修復(fù)漏洞
    • 增量版本:表示有重大漏洞的修復(fù)
    • 里程碑版本:表明一個版本的里程碑(版本內(nèi)部)。這樣的版本同下一個正式版相比,相對來說不是很穩(wěn)定,有待更多的測試
  • 范例:
    • 5.1.9.RELEASE
13.資源配置

資源配置多文件維護(hù)

配置文件引用pom屬性

  • 作用

    • 在任意配置文件中加載pom文件中定義的屬性
  • 調(diào)用格式

    ${jdbc.url}
  • 定義自定義屬性

    5.1.9.RELEASE4.12jdbc:mysql://127.0.0.1:3306/ssm_db
  • 開啟配置文件加載pom屬性

    ${project.basedir}/src/main/resourcestrue${project.basedir}/src/test/resourcestrue
  • properties配置

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=${jdbc.url}
    jdbc.username=root
    jdbc.password=itheima
14.多環(huán)境開發(fā)配置

多環(huán)境兼容

14.1定義多環(huán)境
pro_evnjdbc:mysql://127.1.1.1:3306/ssm_dbtruedep_evnjdbc:mysql://127.2.2.1:3306/ssm_db
14.2使用多環(huán)境

加載指定環(huán)境

  • 作用

    • 加載指定環(huán)境配置
  • 調(diào)用格式

    mvn 指令 -P 環(huán)境定義id
  • 范例

    mvn install -P pro_env

15.跳過測試

跳過測試環(huán)節(jié)的應(yīng)用場景

  • 整體模塊功能未開發(fā)
  • 模塊中某個功能未開發(fā)完畢
  • 單個功能更新調(diào)試導(dǎo)致其它功能失敗
  • 快速打包
15.1方式一

15.2方式二

注意:idea中并沒有Run Maven這個按鈕,需要下載插件

去setting中下載maven helper插件

下載完后,重啟一下idea就有了

15.3方式三
org.apache.maven.plugins maven-surefire-plugin 		  	**/User*Test.java   	   
16.游戲 16.1nexus服務(wù)器安裝與啟動

分模塊合作開發(fā)

Nexus下載

  • Nexus是Sonatype公司的一款maven游戲產(chǎn)品

  • 下載地址:https://help.sonatype.com/repomanager3/download

Nexus安轉(zhuǎn),啟動與配置

  • 進(jìn)入安裝目錄,打開cmd

    D:\sdk\nexus-3.43.0-01\bin
  • 啟動服務(wù)器(命令行啟動)

    nexus.exe /run nexus

    出現(xiàn)如下圖:表示啟動成功(中間過程比較長)

  • 訪問服務(wù)器(默認(rèn)端口:8081)

    http://localhost:8081
  • 修改基礎(chǔ)配置信息

    • 安裝路徑下etc目錄中nexus-default。properties文件保存有nexus基礎(chǔ)配置信息,例如默認(rèn)訪問端口
  • 修改服務(wù)器運行配置信息

    • 安轉(zhuǎn)路徑下bin目錄中nexus.vmoptions文件保存有nexus服務(wù)器啟動對應(yīng)的配置信息,例如默認(rèn)占用內(nèi)存空間
16.2倉庫分類與手動上傳組件

游戲資源獲取

倉庫分類

  • 宿主倉庫hosted
    • 保存無法從中央倉庫獲取的資源
      • 自主研發(fā)
      • 第三方非開源項目
  • 代理倉庫proxy
    • 代理遠(yuǎn)程倉庫,通過nexus訪問其他公共倉庫,例如中央倉庫
  • 倉庫組group
    • 將若干個倉庫組成一個群組,簡化配置
    • 倉庫組不能保存資源,屬于設(shè)計型倉庫

1.登錄

2.創(chuàng)建倉庫

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-lU8JWUKY-1669996114358)(C:\Users\yanmi\AppData\Roaming\Typora\typora-user-images\image-20221129213622369.png)]

3.上傳依賴

4.刪除依賴

上傳資源時提供對應(yīng)的信息

  • 保存的位置(宿主倉庫)
  • 資源文件
  • 對應(yīng)坐標(biāo)
16.3本地倉庫訪問游戲

idea環(huán)境中資源上傳與下載


訪問游戲配置(本地倉庫訪問游戲)

  • 配置本地倉庫訪問游戲的權(quán)限(setting.xml)

    heima-releaseadminadminheima-snapshotsadminadmin
  • 配置本地倉庫資源來源(setting.xml)

	alimavenaliyun mavenhttp://maven.aliyun.com/nexus/content/groups/public/centralnexus-heimahttp://localhost:8081/repository/maven-public/*

自定義的url如何查找:如下圖

16.4idaa訪問游戲與組件上傳
  • 配置當(dāng)前項目訪問游戲上傳資源的保存位置(pom.xml)

    heima-releasehttp://localhost:8081/repository/heima-releaseheima-releasehttp://localhost:8081/repository/heima-snapshots
  • 發(fā)布資源到游戲命令

    mvn deploy

    或者直接使用Maven生命周期方法如下:

小節(jié)

  • 資源發(fā)布

    • 設(shè)置游戲訪問權(quán)限
    • 設(shè)置資源上傳路徑(游戲宿主倉庫地址)
    • 設(shè)置資源下載路徑(游戲倉庫組地址)
  • 發(fā)布命令

    http://maven.aliyun.com/nexus/content/groups/public/centralnexus-heimahttp://localhost:8081/repository/maven-public/*
**自定義的url如何查找:如下圖**

[外鏈圖片轉(zhuǎn)存中...(img-E6VkvjIs-1669996114359)]

### 16.4idaa訪問游戲與組件上傳

- 配置當(dāng)前項目訪問游戲上傳資源的保存位置(pom.xml)

  ~~~xmlheima-releasehttp://localhost:8081/repository/heima-releaseheima-releasehttp://localhost:8081/repository/heima-snapshots
  • 發(fā)布資源到游戲命令

    mvn deploy

    或者直接使用Maven生命周期方法如下:

[外鏈圖片轉(zhuǎn)存中…(img-r6ZiQUeD-1669996114360)]

小節(jié)

  • 資源發(fā)布
    • 設(shè)置游戲訪問權(quán)限
    • 設(shè)置資源上傳路徑(游戲宿主倉庫地址)
    • 設(shè)置資源下載路徑(游戲倉庫組地址)
  • 發(fā)布命令

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

文章標(biāo)題:Maven入門教程-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://www.muchs.cn/article12/pdcgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站策劃電子商務(wù)、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)