Maven入门教程
本文将使用Maven构建一个简单的Java项目来帮助你快速上手。
将要用到的工具
安装Maven
使用Scoop
安装Maven:
scoop install maven
耐心等等安装完成。然后使用下面的命令测试安装是否正常:
mvn -v
如果能看到类似下面的输出,就说明Maven安装成功了:
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: C:\Users\Tony\scoop\apps\maven\current\bin\..
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_191\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
搭建项目
选择一个文件夹开始搭建项目,后面的操作都以此文件夹为基础。
在此文件夹下,创建一组子目录来存放Java代码:
mkdir -p src/main/java/hello
看起来就像这样:
└─src
└─main
└─java
└─hello
然后创建Java代码文件src/main/java/hello/HelloWorld.java
package hello;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
以及Maven的配置文件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>com.example</groupId>
<artifactId>maven-demo</artifactId>
<version>0.0.1</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>
打包 & 运行
上面是一个简单的可构建的Maven项目,我们先打包运行一下看看。
打包:
mvn package
Maven会在项目目录下创建一个target
文件夹,编译打包出的文件都放在这里。
运行:
java -jar target/maven-demo-0.0.1.jar
不出意外的话,就可以看见经典的Hello world!
了。
Maven项目标准布局
我们只创建2个文件和几个目录,Maven就帮我们把.jar
包打出来了,是不是很神奇。
其实这里我们用到了一些默认的东西,比如Maven的标准目录布局:
目录 | 描述 |
---|---|
src/main/java | 程序源文件 |
src/main/resources | 资源文件 |
src/main/webapp | Web程序源文件 |
src/test/java | 测试源文件 |
target | 输出目录 |
pom.xml | 项目配置 |
在项目文件夹下有2个主要目录:src
和target
。
src
存放构建项目所需的全部文件,它下面的main
存放主要的程序代码,test
存放测试用的代码。
target
则用来存放构建项目的输出文件。
另外,最重要的pom.xml
也是放在项目根目录下的。
配置文件
pom.xml
是Maven最重要的组件,它最少要包含:
- project 根节点
- modelVersion 必须为4.0.0
- groupId 项目组织id
- artifactId 项目id
- version 项目版本
一个最小化的POM大概是这样:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>maven-demo</artifactId>
<version>0.0.1</version>
</project>
在这个POM的基础上增加依赖、插件、配置属性,然后就可以实现各种需求了。
添加依赖
我们经常会使用外部库来辅助完成工作,下面我们演示如何用Maven添加Joda Time
依赖,并打印当前时间。
打开pom.xml
把下面的内容添加到<project>
内:
<dependencies>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.2</version>
</dependency>
</dependencies>
先在POM中添加依赖项的好处是,如果我们使用IDE的话,编辑代码时可以自动提示相关内容。
修改src/main/java/hello/HelloWorld.java
:
package hello;
import org.joda.time.LocalTime;
public class HelloWorld {
public static void main(String[] args) {
LocalTime currentTime = new LocalTime();
System.out.println("The current local time is: " + currentTime);
System.out.println("Hello world!");
}
}
依赖添加完毕,重新打包 & 运行看看。
完整代码下载
https://github.com/a1518915457/maven-demo
总结
现在你已经学会了如何安装Maven、搭建项目、添加依赖、打包运行。
入门教程到此就结束了,其他更深入的用法在实际使用中慢慢摸索吧。