我是靠谱客的博主 淡淡小松鼠,这篇文章主要介绍Maven入门指南(基于Linux),现在分享给大家,希望可以做个参考。

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

在Java开发中,Maven的地位已经不言而喻了,相比起Ant它更优秀,当然在gradle面前,Maven也存在着臃肿的问题,可以说Maven也会朝着更简洁的方向发展,就像Spring也在逐渐的去除繁重的xml配置,更不用提Java10各种提案的激进思路,但是如今国内外Maven的使用依旧是比较主流。

我们今天基于Ubuntu-server 17版本进行Maven项目的构建。

由于Maven是有自己的文件目录结构的:
这里写图片描述

但其最基本只需要java源码目录

复制代码
1
2
3
4
└── src └── main └── java └── 我们自己的包

我们在Linux下创建自己的目录,包的名字为hello(对应的文件夹名相同)

复制代码
1
mkdir -p src/main/java/hello

此时我们新建两个Java类文件,分别为src/main/java/hello/HelloWorld.java

复制代码
1
2
3
4
5
6
7
8
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

复制代码
1
2
3
4
5
6
7
package hello; public class Greeter { public String sayHello() { return "Hello world!"; } }

要注意的是包名要和文件夹同名,类名要和文件同名(JAVA最基础的部分)

此时我们已经根据Maven的目录结构搭建好了自己的目录和类文件,在Ubuntu(17及以上版本)下,使用

复制代码
1
apt install maven

下载安装maven,输入mvn -version,可以看到Maven安装成功

这里写图片描述

然后我们回到 src 的上级目录,新建文件 pom.xml ,这个是Maven构建项目的配置文件,其中给出了项目名称,版本号,项目描述以及依赖库等。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?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>

写入pom.xml

这里写图片描述

这是此时的项目结构目录

1. 在当前目录下,使用Maven进行编译

复制代码
1
mvn compile

看到如下运行结果,说明编译成功

这里写图片描述

编译成功以后可以查看目录结构,你会发现编译后的.class文件存在于 target 目录下,进图 classes 目录下,可以使用 java hello.HelloWorld 启动JVM运行项目

这里写图片描述

2.在当前目录下,使用Maven进行打包

复制代码
1
mvn package

使用此命令,Maven会将当前Java项目进行打包处理,默认生成.jar包(当然也可以通过配置生成.war包,只需要更改pom.xml文件中的packaging属性为war
这里写图片描述
可以看到 target/ 目录下的 gs-maven-0.1.0.jar (maven会使用artifactIdversion的形式命名)

3.在当前目录下,将当前项目安装进Maven本地仓库

Maven有三种依赖仓库:1.中央仓库 2.本地仓库 3.远程仓库

  1. Maven中央仓库 是Maven官方的远程仓库,在能连接到服务器的情况下,Maven项目中的依赖库可以从中央仓库下载到本地仓库
  2. 本地仓库是Maven在本机上的依赖包仓库,添加依赖包以后Maven会优先从本地仓查找是否存在依赖包,若不存在,则去中央仓下载。
  3. 若中央仓库服务器无法连接(比如公司内网环境),Maven会去远程仓库下载,一般公司内搭建有自己的远程仓库。

而我们可以把自己的项目打包,并放入本地仓,以后的项目如果用到该项目文件,则可以直接使用Maven引入依赖。

复制代码
1
mvn install

成功以后,可以去Maven本地仓查看是否已经存在自己的项目,Ubuntu默认的本地仓库是 /root/.m2/repository/

复制代码
1
cd /root/.m2/repository/

根据pom.xml文件中 groupIdorg.springframework

我们可以看到我们的项目已经被打包放入Maven本地仓
这里写图片描述

这里要说明一点,关于Maven本地仓位置:

配置在Maven安装目录下的 conf/settings.xml内
ubuntu17默认为 /usr/share/maven/conf/settings.xml

其中本地仓的目录配置在

这里写图片描述

可以看到默认目录是{user.home}/.m2/repository,因为我在root用户下安装,所以我的默认仓在/root/.m2/repository下(当然可以手动改动)

4.在项目中,使用Maven自动引入依赖包

这是Maven尤其重要的特性,只需要配置pom.xml文件,就再也不需要去手动配置BuildPath,然后把各种依赖库的包加入到文件夹里了。

比如常见的 MySQL Connector,我们平时需要手动下载,然后把它放到Java项目的BuildPath中(以eclipse构建项目为例)

这里写图片描述

而有了Maven构建项目以后,我们只需要去中央仓库搜索mysql,找到对应的包

这里写图片描述

复制代码
1
2
3
4
5
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>6.0.6</version> </dependency>

把依赖包的具体信息(groupId,artifactId,version),添加到自己项目的pom.xml 中,就可以在项目中随意的使用这些依赖包了。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<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> <!-- 下面是新添加的代码块,dependencies元素要在project内 --> <dependencies> <!-- 每一个 dependency 元素信息可以从Maven中央仓找到 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>6.0.6</version> </dependency> </dependencies> </project>

这样再使用Maven编译或者打包项目,依赖的包就可以自动下载并且正常引入(import)到项目中。


本文基于:
Spring GETTING STARTED -Building Java Projects with Maven

参考资料:
https://www.cnblogs.com/ysocean/p/7420373.html
https://maven.apache.org/plugins/maven-compiler-plugin/index.html

最后

以上就是淡淡小松鼠最近收集整理的关于Maven入门指南(基于Linux)的全部内容,更多相关Maven入门指南(基于Linux)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部