Maven的简单使用
1.检查JDK的安装是否正确
maven的运行依赖于JDK,我们先检查相关的JDK设置是否正确。
1.1 检查JDK是否正确安装
运行:
java -version
正确安装的信息输出如下:
检查JAVA_HOME变量是否正确
JAVA_HOME变量应该指向JDK的安装目录,运行:
echo $JAVA_HOME
输出如下:
2.maven安装
首先到Maven的官方网站下载好maven的运行软件包,这里下载的是apache-maven-3.5.3-bin.tar.gz,我们可以使用wget进行下载
wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz
下载后解压
tar -xvzf apache-maven-3.5.3-bin.tar.gz
将maven移动到/opt文件夹下
mv apache-maven-3.5.3-bin /opt
然后将/opt/apache-maven-3.5.3/bin
添加到系统的PATH变量中:
export /opt/apache-maven-3.5.3/bin:$PATH
检查一下$PATH变量目前的值,运行echo $PATH
,输出如下:
3.使用maven解决依赖
3.1 创建java项目
我们在系统中建立如下的文件夹:
mkdir -p project/src/main/java/hello
然后建立文件:
touch project/src/main/java/hello/HelloWorld.java
编辑HelloWorld.java
,代码如下:
package hello;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
3.2 创建maven的定义文件
maven使用pom.xml
文件进行项目的依赖定义,我们在project
文件夹下创建一个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>
<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>
-
<modelVersion> POM的模型版本号 (固定为 4.0.0).
-
<groupId> 这个项目属于什么组织或者单位,通常是一个倒序的域名
-
<artifactId> 项目的名称(例如生成的jar文件或war文件的名称)
-
<version> 项目的版本号
-
<packaging> 项目的打包方式,默认是jar,表示使用jar文件的生产方式,如果改为war,就是使用war包的生产方式。
运行:
mvn compile
此时,mvn就会进行编译并运行测试,成功编译后,会在project/target/classes
生成文件hello
,如图:
但是这个文件不能直接运行,如果要直接运行的文件,我们需要生成一个jar包,我们使用下面的命令生成jar包:
mvn package
然后就在project/target/
文件夹下面生成了gs-maven-0.1.0.jar
文件,这个文件的命名是根据pom.xml
文件中的<artifactId>和<version>的值生成的:
我们可以直接使用java -jar gs-maven-0.1.0.jar
运行这个文件。
3.3 添加额外的依赖组件
我们现在添加Joda-Time库到我们的项目中,首先在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>
<dependencies>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.2</version>
</dependency>
</dependencies>
<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>
我们在<dependencies>标签里面添加了joad-time的依赖,接下来我们修改HelloWorld.java
文件:
package hello;
public class HelloWorld {
public static void main(String[] args) {
LocalTime currentTime = new LocalTime();
System.out.println("the current time is: "+currentTime);
System.out.println("Hello World!");
}
}
接下来我们运行:
nvm package
系统会从下载依赖的joad-time库到本地,然后再次进行项目的编译和打包,此时我们再次对编译后的jar执行:
java -jar gs-maven-0.1.0.jar
输出: