创建Maven项目
上面的项目都是非编译项目,也就是代码从仓库中拉下来,不经过任何操作就可以发布,这对于像Java源码需要编译的项目是不可用的,下面我们讲解如何使用Maven插件来构建Java项目
1 Maven介绍
Maven是Apache软件基金会开源的一款项目管理综合工具,主要服务于Java项目的构建、依赖管理、项目管理等,Maven提供给开发人员构建一个完整的生命周期框架。
2 安装Maven
软件包下载地址:
清华镜像站下载Maven,并安装(本实验在Jenkins主机安装,如果在其他主机安装需要配置JDK环境,因为 Maven 本身就是基于 Java 写的):
[root@jenkins ~]# tar -xf apache-maven-3.8.1-bin.tar.gz
[root@jenkins ~]# mv apache-maven-3.8.1 /usr/local/maven
[root@jenkins ~]# cd /usr/local/maven
3 Maven目录结构介绍
1)bin:该目录包含了 mvn 运行的脚本,在命令行输入任何一条 mvn 命令时,实际上就是在调用这些脚本。
bin/mvn:基于 UNIX 平台的 shell 脚本。
bin/mvnDebug:基于 UNIX 平台的 shell 脚本( mvn 和 mvnDebug两者基本是一样的,只是 mvnDebug作用就是在运行 Maven 时开启 debug,以便调试 Maven 本身 )。
bin/mvn.cmd:基于Windows 平台的命令脚本。
bin/mvnDebug.cmd:基于Windows 平台的命令脚本。
bin/m2.conf:这是 classworlds 的配置文件,后面会介绍 classworlds。
2)boot:该目录只包含一个文件,以 maven 3.3.9 为例,该文件为 plexus-classworlds-2.5.2.jar包。
plexus-classworlds 是一个类加载器框架,相对于默认的 java 类加载器,它提供了更丰富的语法以方便配置,Maven 使用该框架加载自己的类库。
更多关于 classworlds 的信息请参考 http://classworlds.codehaus.org/。对于一般的 Maven 用户来说,不必关心该文件。
3)conf:该目录包含了一个非常重要的文件 settings.xml。直接修改该文件,就能在机器上全局地定制 Maven 的行为。
4)lib:该目录包含了所有 Maven 运行时需要的 Java 类库,Maven 本身是分模块开发的,因此用户能看到诸如 maven-core-3.3.9.jar、maven-model-3.3.9.jar 之类的文件。
5)LICENSE:记录了 Maven 使用的软件许可证 。
6)NOTICE:记录了 Maven 包含的第三方软件。
7)README.txt:包含了 Maven 的简要介绍,包括安装需求及如何安装的简要指令等。
4 Maven常用命令
5 配置Maven环境
安装好后,接下来对 Maven 进行配置,将 Maven 的 bin 目录添加到 Path 环境变量。
编辑/etc/profile文件,在末尾添加export PATH=/usr/local/apache-maven-3.3.9/bin/:$PATH
[root@jenkins maven]# vim /etc/profile
export PATH=/usr/local/maven/bin/:$PATH
#使用source读取文件内容并执行文件内命令使配置生效
[root@jenkins maven]# source /etc/profile
#执行命令验证:-v 查看版本
[root@jenkins maven]# mvn -v
6 Maven命令学习
a:首先我们上传hello-world.tar.gz(Java项目)项目
[root@jenkins ~]# tar -xf hello-world.tar.gz
[root@jenkins ~]# cd hello-world
#查看目录结构
[root@jenkins hello-world]# tree
.
├── pom.xml
└── src
├── main
│ └── java
│ └── com
│ └── juvenxu
│ └── mvnbook
│ └── helloworld
│ └── HelloWorld.java
└── test
└── java
└── com
└── juvenxu
└── mvnbook
└── helloworld
└── HelloWorldTest.java
接下来我们在此项目的基础上测试常用的maven命令。
b:mvn clean 命令用于清理项目产生的临时文件(在打包之前先执行清理工作)。
[root@jenkins hello-world]# mvn clean
c:mvn package 命令用于打包项目,Maven 通过读取项目文件(pom.xml),找出它们项目之间的依赖关系,并自动解决依赖,默认依赖会从maven的中央仓库下载(速度较慢)。
[root@jenkins hello-world]# mvn package
...
[INFO] BUILD SUCCESS #出现该提示表示构建成功
d:查看构建后结果,构建后会生成target目录,存放构建后的数据
[root@jenkins hello-world]# ls target/
评论区