1. 程式人生 > >Maven系列(一)從零開始構建Java應用程序

Maven系列(一)從零開始構建Java應用程序

.so 構建java項目 cti maven生命周期 包含 兩個類 簡述 work pil

前段時間面試,面試官要我簡述一下Maven生命周期,what?Maven不就是用來構建一個項目的麽,生命周期是什麽東東(我之前一直做.net,但是想找關於java的工作,之前使用Maven構建過項目,所以提了一下)?回來之後趕緊百度了一下,看完瞬間汗顏,連Maven生命周期不懂,還敢稱使用過Maven,所以空閑時間學習了一下。本系列也是我在學習Maven中的一個記錄,會隨著我學習的深入而加深,學習中參照了spring.io Maven教程。

什麽是Maven?Maven的作用是什麽?這個,我們下篇再回答吧!

1、創建目錄結構,如下

└── src
    └── main
        └── java
            └── hello

在目錄src/main/java/hello,我們可以添加任何的java類。那我們就創建這兩個類吧:HelloWorld.java和Greeter.java。

src/main/java/hello/HelloWorld.java

package hello;

public class HelloWorld {
    public static void main(String[] args) {
        Greeter greeter = new Greeter();
        System.out.println(greeter.sayHello());
    }
}

src/main/java/hello/Greeter.java

package hello;

public class Greeter {
    public String sayHello() {
        return "Hello world!";
    }
}

2、下載,安裝,配置Maven

Maven官網直接下載壓縮文件,下載地址Maven,解壓後,添加bin目錄到環境變量中。在命令行中運行mvn命令,測試maven是否正確安裝。如果安裝正確,就是顯示Maven版本號。

mvn -v

3、安裝好Maven後,我們需要創建一個Maven項目定義。 Maven項目使用名為pom.xml的XML文件進行定義。 除此之外,該文件還提供項目的名稱,版本和它在外部庫上的依賴關系。項目文件夾下新建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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.springframework</groupId>
    <artifactId>gs-maven</artifactId>
    <packaging>jar</packaging>
    <version>0.1.0</version>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>hello.HelloWorld</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

除了可選的<packaging>元素外,這是構建Java項目所需的最簡單的pom.xml文件。 它包含項目配置的以下詳細信息:

<modelVersion>: POM模型版本(總是4.0.0)。

<groupId>: 該項目所屬的組或組織,通常表示為反向域名。

<artifactId>:要賦予項目庫工件的名稱(例如,其JAR或WAR文件的名稱)。

<version>: 正在構建的項目版本。

<package>:項目應該如何打包。 JAR文件打包默認為“jar”, WAR文件打包使用“war”。

4、編譯java源代碼。 運行Maven,執行編譯(compile)目標。完成後,可以在target / classes目錄中找到已編譯的.class文件。

mvn compile

執行打包(package)目標。maven將會重新編譯(compile)源碼,執行一些測試(test)用例,最後將源碼打包到/target下的jar文件中,jar文件的命名基於pom.xml中的<artifactId>和<version>。因此,根據我們上面的pom.xml的配置,生成的jar文件應該命名為gs-maven-0.1.0.jar

mvn package

使用java命令執行jar裏的main方法

java -jar target/gs-maven-0.1.0.jar

6、將java項目導入eclipse

以上步驟我們都只是建立了一個java項目整體的框架,並不能直接在eclipse中打開項目。需要執行以下命令,生成相關的將生成的項目轉換成可導入IDE的(執行以下命令後,它會自動下載更新相關資源和配置信息,並產生 Eclipse IDE所要求的所有項目文件)

mvn eclipse:eclipse

Maven系列(一)從零開始構建Java應用程序