Apache Maven

(簡單使用介紹)
(官網: https://maven.apache.org/)

Maven是一個專案管理/構件工具

官方解釋:
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM).

How to install (Windows):

前往 https://maven.apache.org/download.cgi
下載 Binary archive, 並unarchive.

設定Environment Variable:
User variables: MAVEN_HOME, M2_HOME(value設為bin資料夾的path)
System variables: Path (新增bin資料夾的path)

專案架構:

/Project
    /src ->程式碼
        /main 
            /java      ->java程式碼
            /resources ->資源,會被打包進jar, 如圖片/config檔等等
        /test ->測試目錄
    /target ->構建結果
    pom.xml -> information

專案識別:

groupId:artifactId:version

pom.xml

XML格式

<!-- 註解 -->

<attribute>value</attribute>

<!--屬性存取-->
<attr2>${attribute}</attr2>

pom.xml為此專案的設定檔

依賴

一個專案A可以依賴另一個專案B
執行專案A的時候可以包含專案B的程式
但是A.jar並不會打包B.jar
需要用一些插件來達成, 像是"Maven Shade Plugin"

如果有用到依賴,依賴專案的.jar會存放在"local maven repo"裡
C:\\Users\user\.m2\repository\
~/.m2/repository/
如果沒有, Maven會試圖從 repo1.maven.org/maven2/ 下載。

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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- the information of this project --> <groupId>groupId</groupId> <artifactId>artifactId</artifactId> <version>1.0-SNAPSHOT</version> <!-- project properties --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.compiler.source>21</maven.compiler.source> <maven.compiler.target>21</maven.compiler.target> </properties> <!-- dependencies --> <dependencies> <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.11.0</version> </dependency> </dependencies> <!-- build settings --> <build> <finalName>${project.artifactId}</finalName> <plugins> <!-- your build plugins 常用的像是maven compile/maven shade --> </plugins> </build> </project>

指令(mvn)

常用:

mvn -version //check the maven version
mvn compile  //compile the source
mvn clean    //remove target directory
mvn install  //install the project to local maven repo