Maven系列(一)從零開始構建Java應用程序
前段時間面試,面試官要我簡述一下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應用程序