maven的那些事(一)
Maven建立一個Java專案
目標:用Maven建立一個普通Java專案,並把該專案轉成IDEA專案,匯入到IDEA,最後把這個專案打包成一個jar檔案,最後在控制的臺執行jar檔案。
1、開啟控制檯,進入到想要建立專案的目錄,然後執行如下命令,引數自由填寫:
mvn archetype:generate -DgroupId={project-packaging}
-DartifactId={project-name}
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false
引數說明:
-DgroupId:包名,如:com.google
-DartifactId: 專案名稱,如:MavenJavaProject
-DarchetypeArtifactId: 專案的型別,Maven提供了很多模板,如果你沒寫這個,建立的時候就會列出一大堆模板讓你選擇
-DinteractiveMode: 是否使用互動模式,如果是true,那麼在建立過程中就要手動輸入一些引數
例子:
mvn archetype:generate -DgroupId=cn.zycf -DartifactId=MavenJavaProject -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
在上面的例子中,Maven會建立一個名為"NumberGenerator"的專案,並把專案的目錄結構自動建立好。
使用mvn archetype:generate
+ maven-archetype-quickstart模板創建出來的專案結構如下::
MavenJavaProject |-src |---main |-----java |-------cn |---------zycf |-----------App.java |---test |-----java |-------cn |---------zycf |-----------AppTest.java |-pom.xml
所有原始碼放在/src/main/java/目錄裡,所有測試程式碼放在/src/test/java/目錄裡。
pom.xml檔案裡面描述了整個專案的資訊,所有資訊都是從目錄結構裡來的,包括專案外掛、依賴關係以及如何編譯專案等等,裡面內容如下,
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.zycf</groupId>
<artifactId>MavenJavaProject</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>MavenJavaProject</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
2、IDEA IDE
要把這個專案轉成IDEA專案,要進入到"MavenJavaProject"目錄,然後執行如下命令,Maven將會生成IEAD所需的所有檔案:
mvn idea:idea -DjdkName=1.8
此處的JDK版本一定要寫
3、將其匯入IDE中,匯入後如下圖所示:
4、更改pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<!--指定JDK版本-->
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
更改了jUnit的版本
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
最終pom.xml檔案成了
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.zycf</groupId>
<artifactId>MavenJavaProject</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>MavenJavaProject</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<!--JDK版本 -->
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
在命令列再次輸入命令:mvn idea:idea -DjdkName=1.8,Maven將會自動下載編譯外掛並自動升級jUnit的版本,並把依賴包放到本地倉庫裡。
5、使用Maven打包
現在我們使用Maven編譯專案並打包成一個jar檔案,打包成什麼格式的檔案,是通過pom.xml裡的packaging標籤定義的。
在控制檯裡輸入打包命令:mvn package,Maven就會開始編譯專案,執行裡面的單元測試,通過測試後就會把專案打包成一個jar檔案放在project/target目錄裡。
由於target目錄不會顯示在IntelliJ IDEA 裡,所以只能到檔案瀏覽器裡查看了,最終的專案目錄結構如下:
6、執行這個java專案
通過控制檯執行這個jar檔案
C:\Users\Administrator\Desktop\work\MavenJavaProject>java -cp target/MavenJavaProject-1.0-SNAPSHOT.jar cn.zycf.App