Maven入門
Maven入門
Maven介紹
- Maven是專案管理工具,對軟體專案提供構建與依賴管理
- Maven是Apache下的Java開源專案
- Maven為Java專案提供了統一的管理方式,已成為業界標準
解決了的問題
- 工程的結構不統一
- 第三方jar包多的時候,不便於管理
- 工程打包的困難
Maven核心特性
- 專案設定遵循統一的規則,保證不同開發環境的相容性
- 強大的依賴管理,專案依賴元件自動下載、自動更新
- 可擴充套件的外掛機制,使用簡單,功能豐富
Maven的座標:
GroupId:機構或者團隊的英文,採用"逆向域名"形式書寫
ArtifactId:專案名稱,說明其用途,例如:cms(內容管理系統),oa(辦公自動化系統)
Version:版本號,一般採用“版本+單詞”形式,例如:1.0.0.RELEASE
Maven專案標準結構
目錄 | 用途 |
---|---|
${basedir} | 根目錄,用於儲存pom.xml |
${basedir}/src/main/java | Java原始碼目錄 |
${basedir}/src/main/resources | 資源目錄,儲存配置檔案、靜態圖片等 |
${basedir}/src/test/java | 測試類的原始碼 |
${basedir}/src/test/resources | 測試時需要使用的資原始檔 |
${basedir}/target | 專案輸出的目錄,用於儲存jar、war檔案 |
${basedir}/target/classes | 位元組碼(.class)的編譯輸出目錄 |
${basedir}/pom.xml | 專案(Project)物件(Object)模型(Model)檔案 |
Maven的依賴管理
說明
- Maven利用dependency(依賴)自動下載、管理第三方Jar
- 在pom.xml檔案中配置專案依賴的第三方元件
- maven自動將依賴從遠端倉庫下載至本地倉庫,並在工程中引用
獲取
apache:https://search.maven.org/
阿里雲:https://maven.aliyun.com/mvn/search
本地倉庫與中央倉庫
使用代理:
<repositories>
<repository>
<!-- 建立私服的地址 -->
<id>aliyun</id>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
普通專案的建立與打包案例(實現中文與拼音的轉化)
建立&使用:
-
新建一個Maven專案,預設的jdk是1.5,將jdk的版本調整為1.8
-
配置第三方元件,使得maven自動從遠端倉庫中下載第三方jar包到本地倉庫
核心語句
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.1</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.1.1.RELEASE</version> </dependency> </dependencies>
-
建立簡單的java檔案
PinyinTestor.java
public class PinyinTestor { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str = scanner.nextLine(); String[] pinyin = PinyinHelper.toHanyuPinyinStringArray(str.charAt(0)); for(String py:pinyin) { System.out.println(py); } } }
-
執行main方法
打包
-
在pom.xml配置檔案中,根目錄下配置打包的資訊,使用maven-assemble-plugin外掛進行打包輸出
<build> <!-- 配置外掛 --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <!-- 經典版本 --> <version>2.5.5</version> <!-- 用於說明打包過程中的一些細節 --> <configuration> <!-- 指定專案的入口類 --> <archive> <manifest> <mainClass>com.imooc.maven.PinyinTestor </mainClass> </manifest> </archive> <!-- 描述符引用 打包過程中所用到的引數 --> <descriptorRefs> <!-- all in one, 在打包時會將所有引用的jar包合併到jar檔案中 --> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> </plugins> </build>
-
執行assembly外掛,輸出合併的jar檔案
- 用命令列執行輸出的jar包
Web專案的建立與打包案例
建立&使用
-
配置好tomcat,建立一個普通的Maven專案,預設的jdk是1.5,將jdk的版本調整為1.8
-
進入專案的配置資訊,配置java的編譯級別為jdk1.8
-
在src/main目錄下建立一個資料夾,名為webapp
-
將maven工程變成標準的web專案,開啟該工程的屬性配置頁面,選擇
Project Facets,點選Convert to facted from…開啟專案模組的皮膚,選擇版本為3.1,並指定執行環境,不要直接點選apply and close,還沒完 -
點選圖中出現的Further configuration available…,設定content directory為src/main/webapp,勾選配置xml檔案
-
再在右側找到deployment assembly,新增maven的依賴,否則在maven加入的jar包會失效
-
在建立的webapp資料夾中出現MATE-INF和WEB-INF目錄說明,已經成功將普通的maven工程變為標準的web工程
-
在webapp資料夾下建立一個index.jsp , 在裡面寫如this is a maven project!!!
-
將當前工程釋出到tomcat下執行
-
在瀏覽器的url中輸入http:localhost:8080/web-maven/, 在頁面上顯示this is a maven project!!!
打包
-
在pom.xml檔案的根目錄中編寫配置war包的資訊
<!-- packaging代表輸出的格式,預設的是jar包 --> <packaging>war</packaging> <build> <!-- 輸出的war包名 --> <finalName>web-maven</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.2.2</version> </plugin> </plugins> </build>
-
執行maven中的外掛
-
點選run
-
將生成的war包放在tomcat的webapp目錄下,執行tomcat bin目錄下的startup.bat檔案,在瀏覽器中輸入http:localhost:8080/web-maven/
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-NWdf5Z8B-1603171498267)(G:\JAVA\Maven學習\assert\12.png)]
Maven常用命令
命令 | 用途 |
---|---|
mvn archetype:generate | 建立工程結構 |
mvn compile | 編譯原始碼 |
mvn test | 執行測試用例 |
mvn clean | 清除產生的專案 |
mvn package | 專案打包 |
mvn install | 安裝至本地倉庫 |
相關文章
- Maven入門教程Maven
- Maven入門基礎Maven
- Maven 教程之入門指南Maven
- Maven快速入門(五)Maven的依賴管理Maven
- maven 專案的建立入門Maven
- Maven入門【小白千萬別點進】Maven
- MyBatis基於Maven入門例項MyBatisMaven
- Maven實戰入門視訊教程-解析maven多模組管理Maven
- Maven快速入門(四)Maven中的pom.xml檔案詳解MavenXML
- 2018超直白入門demo:IDEA+Maven+MyBatisIdeaMavenMyBatis
- Spring入門(四):使用Maven管理Spring專案SpringMaven
- Maven例項講解教程,從零開始學Maven,帶你快速入門!Maven
- Hibernate基於Maven入門例項,與MyBatis比對MavenMyBatis
- Maven 專案管理工具基礎入門系列(二)Maven專案管理
- maven 依賴匯入Maven
- maven 工程匯入jar包MavenJAR
- 入門入門入門 MySQL命名行MySql
- 何入CTF的“門”?——所謂入門就是入門
- 如何入CTF的“門”?——所謂入門就是入門
- scala 從入門到入門+
- makefile從入門到入門
- gRPC(二)入門:Protobuf入門RPC
- 【小入門】react極簡入門React
- Android入門教程 | RecyclerView使用入門AndroidView
- idea匯入專案報Maven version is not definedIdeaMaven
- idea開啟/匯入maven專案 + 移除IdeaMaven
- 【版本2020.03】使用idea匯入maven專案IdeaMaven
- 新手入門,webpack入門詳細教程Web
- Android入門教程 | Kotlin協程入門AndroidKotlin
- 《Flutter 入門經典》之“Flutter 入門 ”Flutter
- 【Maven】Maven概述Maven
- 解決idea匯入maven專案報Unable to import maven project: See logs for details問題IdeaMavenImportProjectAI
- MyBatis從入門到精通(一):MyBatis入門MyBatis
- maven建立Java 和 Web Project, 並匯入EclipseMavenJavaWebProjectEclipse
- 如何建立+管理maven、匯入web專案、xmlMavenWebXML
- Tableau入門
- angular入門Angular
- lodash入門