一直想寫一篇關於Maven的文章,可是不知如何下筆,若是說能使用,會使用Maven的話,1、兩個小時足矣,不須要搞懂各類概念。那麼給你們來分享下我是如何理解並使用maven的。html
Maven是一個用於項目構建的工具,經過它便捷的管理項目的生命週期。即項目的jar包依賴,開發,測試,發佈打包,主要管理工做是:依賴管理,項目一鍵構建。java
ps:下載項目引用須要jar包的時候存放的本地路徑linux
三者之間的關係是,當咱們在項目中依賴一個jar包時,Maven程序會先去本地倉庫中找,若是沒找到就回去私服找,若是仍是沒有,最後就回去中央倉庫找。其過程以下圖:apache
找到已安裝的maven路徑,如:apache-maven-3.3.9\conf 目錄下settings.xml 文件並用notepad++打開,ctrl+F找到localRepository標籤,將路徑設置爲D:/repository,以下圖:api
說明:什麼是本地倉庫? 就是是由我的將經常使用到的jar包放入一個倉庫中,已備本身在項目中使用,可從別人配置好的jar包倉庫拷到本身本地目錄,由於倉庫通常很大,首次下載須要很長一段時間。dom
實際工做中,不少項目都會用到maven私服倉庫,通常公司都有統一的maven私服倉庫,因爲公司都是統一化管理,這時候咱們就要配置統一的私服倉庫,舉例以下:maven
<mirrors> <mirror> <!--This is used to direct the public snapshots repo in the profile below over to a different nexus group --> <id>nexus-public-snapshots</id> <mirrorOf>public-snapshots</mirrorOf> <url>http://192.168.1.118:8888/nexus/content/repositories/apache-snapshots/</url> </mirror> <mirror> <!--This sends everything else to /public --> <id>nexus</id> <mirrorOf>*</mirrorOf> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror> </mirrors>
pom.xml文件,通常描述了maven項目的基本信息,好比groupId,artifactId,version等,一個最簡單的pom.xml文件至少須要包含四個元素:modelVersion, groupId, artiffactId和version。ide
好比一個基本的pom.xml文件以下:工具
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.test</groupId> //當前項目的信息 <artifactId>maven-demo</artifactId> <version>1.0-SNAPSHOT</version>//SNAPSHOT(快照)表示該項目還在開發中。 </project>
project:pom.xml 文件中的頂層元素;單元測試
modelVersion:指明 POM 使用的對象模型的版本。這個值不多改動。
groupId:指明建立項目的組織或者小組的惟一標識。
GroupId 是項目的關鍵標識,典型的,此標識以組織的徹底限定名來定義。好比,org.apache.maven.plugins 是全部 Maven 插件項目指定的 groupId。
artifactId:指明此項目產生的主要產品的基本名稱。項目的主要產品一般爲一個 JAR 文件。第二,象源代碼包一般使用 artifactId 做爲最後名稱的一部分。典型的產品名稱使用這個格式:
version:項目產品的版本號。Maven 幫助你管理版本,能夠常常看到 SNAPSHOT 這個版本,代表項目處於開發階段。
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId>//編譯插件 <version>2.4.3</version>//插件的版本號 <configuration>//對插件進行配置 <source>1.7</source>//源代碼編譯版本 <target>1.7</target>//目標平臺編譯版本; <encoding>UTF-8</encoding>//設置插件或資源文件的編碼方式。 </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId>//執行測試用例的插件 <version>2.17</version>//插件的版本號 <configuration>//對插件進行配置 <suiteXmlFiles> <suiteXmlFile>${suiteXmlFile}</suiteXmlFile>//測試套件執行路徑 </suiteXmlFiles> </configuration> </plugin> </plugins> </build>
實際開發中須要引用jar包後,再進行開發,那麼在pom中添加依賴呢?
<dependencies> <!-- https://mvnrepository.com/artifact/org.testng/testng --> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.14.3</version> <scope>test</scope> </dependency> </dependencies>
實際效果:
package com.test.demo;
public class HellowWorld {
public String sayHello() {
return "Hello World";
}
public static void main( String[] args ) {
System.out.println(new HellowWorld().sayHello());
}
}
package com.test.demo; import org.testng.Assert; import org.testng.annotations.Test; public class TestHellowWorld { @Test public void testSayHello() { HellowWorld hellowWorld = new HellowWorld(); String result = hellowWorld.sayHello(); Assert.assertEquals("Hello World", result); } }
F:\mavendemo>tree
卷 新加捲 的文件夾 PATH 列表
卷序列號爲 5C5B-6DDB
F:.
├─.idea
└─src
├─main
│ ├─java
│ │ └─com
│ │ └─test
│ │ └─demo
│ └─resources
└─test
└─java
└─com
└─test
└─demo
注意上面帶紅色的目錄名,maven項目採用「約定優於配置」的原則,src/main/java約定用於存放源代碼,src/main/test用於存放單元測試代碼,src/target用於存放編譯、打包後的輸出文件。這是全世界maven項目的通用約定,請記住這些固定的目錄結構。
在項目根目錄下運行mvn clean compile
命令。執行輸出以下所示:
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building maven-demo 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ maven-demo ---
[INFO] Deleting F:\mavendemo\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ maven-demo ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ maven-demo ---
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 1 source file to F:\mavendemo\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.336 s
[INFO] Finished at: 2019-06-23T17:33:29+08:00
[INFO] Final Memory: 13M/309M
[INFO] ------------------------------------------------------------------------
clean:
清理輸出目錄target下生成jar包
compile:
編譯項目主代碼
編譯完成後,咱們通常都會運行測試代碼進行單元測試,雖然不少狀況下,咱們並無這麼作,可是我仍是建議你們經過Maven作一些自動化的單元測試。
測試用例編寫完畢以後就能夠調用Maven執行測試,運行mvn clean test
命令,輸出以下:
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building maven-demo 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ maven-demo --- [INFO] Deleting F:\mavendemo\target [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ maven-demo --- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] Copying 0 resource [INFO] [INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ maven-demo --- [WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent! [INFO] Compiling 1 source file to F:\mavendemo\target\classes [INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ maven-demo --- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory F:\mavendemo\src\test\resources [INFO] [INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ maven-demo --- [WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent! [INFO] Compiling 1 source file to F:\mavendemo\target\test-classes [INFO] [INFO] --- maven-surefire-plugin:2.17:test (default-test) @ maven-demo --- [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.032 s [INFO] Finished at: 2019-06-23T17:27:28+08:00 [INFO] Final Memory: 15M/309M [INFO] ------------------------------------------------------------------------
打包就是將咱們編寫的應用打成JAR包或者WAR包,咱們執行mvn clean package
命令就能夠完成打包。mvn clean package
命令的輸出以下:
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building maven-demo 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ maven-demo --- [INFO] Deleting F:\mavendemo\target [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ maven-demo --- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] Copying 0 resource [INFO] [INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ maven-demo --- [WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent! [INFO] Compiling 1 source file to F:\mavendemo\target\classes [INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ maven-demo --- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory F:\mavendemo\src\test\resources [INFO] [INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ maven-demo --- [WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent! [INFO] Compiling 1 source file to F:\mavendemo\target\test-classes [INFO] [INFO] --- maven-surefire-plugin:2.17:test (default-test) @ maven-demo --- [INFO] Surefire report directory: F:\mavendemo\test-output ------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.test.demo.TestHellowWorld Configuring TestNG with: TestNG652Configurator Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.498 sec - in com.test.demo.TestHellowWorld Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ maven-demo --- [INFO] Building jar: F:\mavendemo\target\maven-demo-1.0-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.356 s [INFO] Finished at: 2019-06-23T17:46:00+08:00 [INFO] Final Memory: 17M/311M [INFO] ------------------------------------------------------------------------
運行完後,會在target目錄下生成jar包
若是別的項目要引用這個JAR包時,咱們將這個JAR包複製到其它項目的classpath中就OK了。
可是這樣拷貝就違背了咱們當初想要自動解決依賴的問題,因此如何才能讓其它的Maven項目直接引用這個JAR包呢?咱們須要執行mvn clean install
命令。
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building maven-demo 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ maven-demo --- [INFO] Deleting F:\mavendemo\target [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ maven-demo --- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] Copying 0 resource [INFO] [INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ maven-demo --- [WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent! [INFO] Compiling 1 source file to F:\mavendemo\target\classes [INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ maven-demo --- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory F:\mavendemo\src\test\resources [INFO] [INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ maven-demo --- [WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent! [INFO] Compiling 1 source file to F:\mavendemo\target\test-classes [INFO] [INFO] --- maven-surefire-plugin:2.17:test (default-test) @ maven-demo --- [INFO] Surefire report directory: F:\mavendemo\test-output ------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.test.demo.TestHellowWorld Configuring TestNG with: TestNG652Configurator Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.611 sec - in com.test.demo.TestHellowWorld Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ maven-demo --- [INFO] Building jar: F:\mavendemo\target\maven-demo-1.0-SNAPSHOT.jar [INFO] [INFO] --- maven-install-plugin:2.4:install (default-install) @ maven-demo --- [INFO] Installing F:\mavendemo\target\maven-demo-1.0-SNAPSHOT.jar to E:\repository\com\test\maven-demo\1.0-SNAPSHOT\maven-demo-1.0-SNAPSHOT.jar [INFO] Installing F:\mavendemo\pom.xml to E:\repository\com\test\maven-demo\1.0-SNAPSHOT\maven-demo-1.0-SNAPSHOT.pom [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 4.643 s [INFO] Finished at: 2019-06-23T20:39:34+08:00 [INFO] Final Memory: 16M/211M [INFO] ------------------------------------------------------------------------
下面經過用命名行建立一個最基本的maven項目
mvn archetype:generate
先建立項目的根目錄,從盤符開始,命令行窗口下輸入
mkdir demotest
cd demotest
mvn archetype:generate
首次運行時,mvn會從遠程"中央倉庫"下載一些必需的文件到"本地倉庫" -
若是你有興趣,能夠在等待下載過程當中,觀察一下"C:\Users\當前用戶名\.m2\repository"目錄下是否是多了不少文件。
下載完成後,會自動進入交互模式,會讓你輸入一些基本信息,相似下面這樣:
F:\demotest>mvn archetype:generate Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Maven Stub Project (No POM) 1 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] >>> maven-archetype-plugin:3.0.0:generate (default-cli) > generate-sources @ standalone-pom >>> [INFO] [INFO] <<< maven-archetype-plugin:3.0.0:generate (default-cli) < generate-sources @ standalone-pom <<< [INFO] [INFO] --- maven-archetype-plugin:3.0.0:generate (default-cli) @ standalone-pom --- Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-artifact-transfer/0.9.0/maven-artifact-transfer-0.9.0.pom Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-artifact-transfer/0.9.0/maven-artifact-transfer-0.9.0.pom (8 KB at 5.4 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-common-artifact-filters/3.0.0/maven-common-artifact-filters-3.0.0.pom Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-common-artifact-filters/3.0.0/maven-common-artifact-filters-3.0.0.pom (5 KB at 10.1 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-shared-components/22/maven-shared-components-22.pom Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-shared-components/22/maven-shared-components-22.pom (5 KB at 11.2 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-provider-api/2.8/wagon-provider-api-2.8.pom Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-provider-api/2.8/wagon-provider-api-2.8.pom (2 KB at 3.8 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon/2.8/wagon-2.8.pom Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon/2.8/wagon-2.8.pom (19 KB at 41.0 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/codehaus/groovy/groovy/1.8.3/groovy-1.8.3.pom Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/groovy/groovy/1.8.3/groovy-1.8.3.pom (32 KB at 26.9 KB/sec) Downloading: https://repo.maven.apache.org/maven2/antlr/antlr/2.7.7/antlr-2.7.7.pom Downloaded: https://repo.maven.apache.org/maven2/antlr/antlr/2.7.7/antlr-2.7.7.pom (0 B at 0.0 KB/sec) Downloading: https://repo.maven.apache.org/maven2/asm/asm/3.2/asm-3.2.pom Downloaded: https://repo.maven.apache.org/maven2/asm/asm/3.2/asm-3.2.pom (0 B at 0.0 KB/sec) Downloading: https://repo.maven.apache.org/maven2/asm/asm-parent/3.2/asm-parent-3.2.pom Downloaded: https://repo.maven.apache.org/maven2/asm/asm-parent/3.2/asm-parent-3.2.pom (0 B at 0.0 KB/sec) Downloading: https://repo.maven.apache.org/maven2/asm/asm-commons/3.2/asm-commons-3.2.pom Downloaded: https://repo.maven.apache.org/maven2/asm/asm-commons/3.2/asm-commons-3.2.pom (0 B at 0.0 KB/sec) Downloading: https://repo.maven.apache.org/maven2/asm/asm-tree/3.2/asm-tree-3.2.pom Downloaded: https://repo.maven.apache.org/maven2/asm/asm-tree/3.2/asm-tree-3.2.pom (0 B at 0.0 KB/sec) Downloading: https://repo.maven.apache.org/maven2/asm/asm-util/3.2/asm-util-3.2.pom Downloaded: https://repo.maven.apache.org/maven2/asm/asm-util/3.2/asm-util-3.2.pom (0 B at 0.0 KB/sec) Downloading: https://repo.maven.apache.org/maven2/asm/asm-analysis/3.2/asm-analysis-3.2.pom Downloaded: https://repo.maven.apache.org/maven2/asm/asm-analysis/3.2/asm-analysis-3.2.pom (0 B at 0.0 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.pom Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.pom (0 B at 0.0 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-interactivity/1.0-alpha-6/plexus-interactivity-1.0-alpha-6.pom Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-interactivity/1.0-alpha-6/plexus-interactivity-1.0-alpha-6.pom (0 B at 0.0 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom (0 B at 0.0 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-script-interpreter/1.0/maven-script-interpreter-1.0.pom Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-script-interpreter/1.0/maven-script-interpreter-1.0.pom (4 KB at 8.0 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/apache/ant/ant/1.8.1/ant-1.8.1.pom Downloaded: https://repo.maven.apache.org/maven2/org/apache/ant/ant/1.8.1/ant-1.8.1.pom (0 B at 0.0 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/apache/ant/ant-parent/1.8.1/ant-parent-1.8.1.pom Downloaded: https://repo.maven.apache.org/maven2/org/apache/ant/ant-parent/1.8.1/ant-parent-1.8.1.pom (0 B at 0.0 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/archetype/archetype-catalog/3.0.0/archetype-catalog-3.0.0.jar Downloading: https://repo.maven.apache.org/maven2/net/sourceforge/jchardet/jchardet/1.0/jchardet-1.0.jar Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/archetype/archetype-common/3.0.0/archetype-common-3.0.0.jar Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/archetype/archetype-descriptor/3.0.0/archetype-descriptor-3.0.0.jar Downloading: https://repo.maven.apache.org/maven2/jdom/jdom/1.0/jdom-1.0.jar Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/archetype/archetype-catalog/3.0.0/archetype-catalog-3.0.0.jar (19 KB at 39.7 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/codehaus/groovy/groovy/1.8.3/groovy-1.8.3.jar Downloaded: https://repo.maven.apache.org/maven2/jdom/jdom/1.0/jdom-1.0.jar (0 B at 0.0 KB/sec) Downloading: https://repo.maven.apache.org/maven2/antlr/antlr/2.7.7/antlr-2.7.7.jar Downloaded: https://repo.maven.apache.org/maven2/antlr/antlr/2.7.7/antlr-2.7.7.jar (0 B at 0.0 KB/sec) Downloading: https://repo.maven.apache.org/maven2/asm/asm/3.2/asm-3.2.jar Downloaded: https://repo.maven.apache.org/maven2/net/sourceforge/jchardet/jchardet/1.0/jchardet-1.0.jar (26 KB at 26.5 KB/sec) Downloading: https://repo.maven.apache.org/maven2/asm/asm-commons/3.2/asm-commons-3.2.jar Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/archetype/archetype-descriptor/3.0.0/archetype-descriptor-3.0.0.jar (24 KB at 20.6 KB/sec) Downloading: https://repo.maven.apache.org/maven2/asm/asm-util/3.2/asm-util-3.2.jar Downloaded: https://repo.maven.apache.org/maven2/asm/asm-util/3.2/asm-util-3.2.jar (0 B at 0.0 KB/sec) Downloading: https://repo.maven.apache.org/maven2/asm/asm-analysis/3.2/asm-analysis-3.2.jar Downloaded: https://repo.maven.apache.org/maven2/asm/asm-analysis/3.2/asm-analysis-3.2.jar (0 B at 0.0 KB/sec) Downloading: https://repo.maven.apache.org/maven2/asm/asm-tree/3.2/asm-tree-3.2.jar Downloaded: https://repo.maven.apache.org/maven2/asm/asm-commons/3.2/asm-commons-3.2.jar (33 KB at 20.2 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/3.0.21/plexus-utils-3.0.21.jar Downloaded: https://repo.maven.apache.org/maven2/asm/asm-tree/3.2/asm-tree-3.2.jar (22 KB at 10.6 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.jar Downloaded: https://repo.maven.apache.org/maven2/asm/asm/3.2/asm-3.2.jar (43 KB at 19.6 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-invoker/2.2/maven-invoker-2.2.jar Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.jar (12 KB at 4.7 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-artifact-transfer/0.9.0/maven-artifact-transfer-0.9.0.jar Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-invoker/2.2/maven-invoker-2.2.jar (30 KB at 8.3 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-common-artifact-filters/3.0.0/maven-common-artifact-filters-3.0.0.jar Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/3.0.21/plexus-utils-3.0.21.jar (240 KB at 56.1 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-script-interpreter/1.0/maven-script-interpreter-1.0.jar Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-artifact-transfer/0.9.0/maven-artifact-transfer-0.9.0.jar (121 KB at 27.4 KB/sec) Downloading: https://repo.maven.apache.org/maven2/org/apache/ant/ant/1.8.1/ant-1.8.1.jar Downloaded: https://repo.maven.apache.org/maven2/org/apache/ant/ant/1.8.1/ant-1.8.1.jar (0 B at 0.0 KB/sec) Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-script-interpreter/1.0/maven-script-interpreter-1.0.jar (21 KB at 4.0 KB/sec) Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-common-artifact-filters/3.0.0/maven-common-artifact-filters-3.0.0.jar (56 KB at 10.6 KB/sec) Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/archetype/archetype-common/3.0.0/archetype-common-3.0.0.jar (324 KB at 51.1 KB/sec) Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/groovy/groovy/1.8.3/groovy-1.8.3.jar (5394 KB at 19.0 KB/sec) [INFO] Generating project in Interactive mode
.............................................................................
執行這個命令後,後看到不少輸出,而後再按照提示一步步操做,一個Maven項目就建立成功了。
到此,關於maven的入門基礎知識總結完畢,文章知識點相對繁瑣、複雜,還請讀者屢次閱讀和實踐,若有錯誤之處,煩請多指正!
參考文章:
https://www.jellythink.com/archives/502
https://www.cnblogs.com/yjmyzz/p/3495762.html