文章目录
1.maven是什么?
Apache Maven是一种用于软件项目管理工具,基于Project Object Model(POM),用于管理项目的构建,汇报及文档生成等功能。
2.通过IDEA创建maven项目
2.1新建maven类型的项目:
首先打开IDEA,选择create new project,点击Maven,然后选择next.
然后输入合适的GroupId和ArtifactId,一般GroupId代表的是机构名称,我们自己使用可以使用com.自己名字代替,ArtifactId描述的是这个项目的名字,给出合适的名字即可。
然后新项目就会配置完成。
2.2项目的文件夹
创建好新项目,观察项目的文件夹结构:
jade\
src\
main\
java\
resources\
test\
java\
pom.xml
其中
- 我们的代码一般在src\main\java文件夹下,跟着我们的包名即可;
- src\main\resources下一般是用于同时部署的一些资源文件;(开发的一些配置文件)
- src\test\java 一般用于放一些测试代码;
- pom.xml为maven最重要的文件,是maven的配置描述文件。
2.3 Maven的配置文件–pom.xml
pom.xml文件的后缀名表示这个文件是用XML格式进行组织的。那么什么是XML文件呢,简单的去理解,是一中类似于我们学习过的html格式的文件,全程Extensible Markup Language,Java中经常会用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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>jade</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
</dependencies>
</project>
在此处我们还应该配置一些参数,因为我们一般在默认情况下,maven 会使用 1.5 版本进行代码检查,一般我们都修改为 1.8。
一般是添加下列参数,修改为1.8.
<!-- 可以配置一些参数 -->
<properties> <!-- 默认情况下,maven 会使用 1.5 版本进行代码检查,一般我们都修改为 1.8 -->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target> </properties>
3. 依赖管理
什么是Maven仓库???
Maven仓库是一个类似于手机上的App Store的东西,上面会有全世界的人上传的各种第三方的jar包供我们使用,当我们的项目需要用到其中的内容的时候,可以像手机app一样方便的进行查找。
其中我们的项目用到了另一个项目,叫做依赖关系。而一个项目中往往需要很多的额依赖,所以诞生了依赖管理的概念。
4. maven中配置依赖
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
</dependencies>
是在<dependencies>
</dependencies>
这个标签中引入依赖的,在这里需要注意的是修改玩pom.xml,必须刷新maven面板才生效。引入依赖包,创建一个类,验证一个类看看是否能够使用。
5.构建生命周期
通常,我们理解的工程构建,可以被区分成不同的生命周期(Lifecycle)和阶段(Phase),其中maven把各个阶段都做了各自的映射。Maven的生命周期命令:
- compile 编译阶段
- test 测试阶段
- package 打包阶段
- deploy 部署阶段
我们可以点击package进行打包,成功后,项目的target文件夹下会生成jade-1.0-SNAPSHOT.jar 包。但这个 jar 包是不带 Main-Class 的 jar 包,即无法直接运行。