1. 程式人生 > >maven的那些事(一)

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