项目中使用的 jar 包至少是成百上千,每个 jar 包之间还会有依赖性,jar 包也很难去找,所以人为的管理这么多 jar 包显然是不合理的
我们就需要可以管理这些包的工具,Maven 就是其中之一
https://blog.csdn.net/qq_43599841/article/details/127368168
步骤1:复制
jar包复制粘贴到项目的lib目录下
1 对于导入的eclipse项目,该方式添加的jar包没有任何反应,用make编译项目会报错
2 对于在idea中创建的项目,该方式添加jar包,编译不报错
步骤2:右键
中文官网
https://maven.org.cn/
https://maven.org.cn/pom.html
https://juejin.cn/post/6844903824524574734
https://maven.org.cn/guides/plugin/guide-java-plugin-development.html#介绍
https://blog.csdn.net/m0_37989980/article/details/104249966
菜鸟教程 https://www.runoob.com/maven/maven-tutorial.html
<dependency>
<groupId>xxx</groupId>
<artifactId>abc</artifactId>
<version>${abc.version}</version>
<exclusions>
<exclusion>
<groupId>i.n</groupId>
<artifactId>n-a</artifactId>
</exclusion>
</exclusions>
</dependency>
依赖模块的 坐标(artifactId
) 就是abc
,和文件名无关
可能这个项目名叫 abc-1,但他自己可以:
abc-1 的 pom.xml :
<parent>
<groupId>cccgroupId>
<artifactId>abc-parentartifactId>
<version>2.1.1.1-RELEASEversion>
<relativePath>../pom.xmlrelativePath>
parent>
<artifactId>abcartifactId>
<packaging>jarpackaging>
<name>abcname>
一个项目可能有4个子模块
你引用的可以是其中的1个模块
<dependency>
<groupId>xb-1groupId>
<artifactId>abcdartifactId>
<version>${abcd.version}version>
<exclusions>
<exclusion>
<groupId>i.ngroupId>
<artifactId>n-aartifactId>
exclusion>
exclusions>
dependency>
关联的是 父pom 的 ar-2.2.1-SNAPSHOT.xml
:
<parent>
<groupId>xb-2groupId>
<artifactId>arartifactId>
<version>2.2.1-SNAPSHOTversion>
parent>
甚至是父的父的父
本地库原本是空的,在导包的时候,这些都会导进来
<properties>
<encoding>UTF-8encoding>
<project.build.s>${encoding}project.build.s>
<project.reporting.o>${encoding}project.reporting.o>
<ant-launcher.version>${ant.version}ant-launcher.version>
<spring-cloud-starter.version>${spring-cloud.version}spring-cloud-starter.version>
<abc.version>1.2.9abc.version>
<abc-1.version>1.2.9abc-1.version>
properties>
目录 | 目的 |
---|---|
${basedir} | 存放pom.xml和所有的子目录 |
${basedir}/src/main/java | 项目的java源代码 |
${basedir}/src/main/resources | 项目的资源,比如说property文件,springmvc.xml |
${basedir}/src/test/java | 项目的测试类,比如说Junit代码 |
${basedir}/src/test/resources | 测试用的资源 |
${basedir}/src/main/webapp/WEB-INF | web应用文件目录,web项目的信息,比如存放web.xml、本地图片、jsp视图页面 |
${basedir}/target | 打包输出目录 |
${basedir}/target/classes | 编译输出目录 |
${basedir}/target/test-classes | 测试编译输出目录 |
Test.java | Maven只会自动运行符合该命名规则的测试类 |
~/.m2/repository | Maven默认的本地仓库目录位置 |
● 文件及文件夹解析:
○ pom.xml:maven 项目的核心配置文件
○ src:源码目录
■ main:主体程序目录
● java:java 源代码
○ com 及以下:package 目录,且与 maven 坐标对应
■ test:测试程序目录
● java:java 源代码
○ com 及以下:同上
目前开发领域的技术发展趋势就是:规范大于配置,配置大于编码
三个标准的生命周期:
1、Clean 生命周期
clean:删除目标目录中的编译输出文件。通常在构建之前执行,确保项目从一个干净的状态开始
2、Default 生命周期(= Build 生命周期)
阶段 | 处理 | 描述 |
---|---|---|
验证 validate | 验证项目 | 验证项目是否正确且所有必须信息是可用的 |
编译 compile | 执行编译 | 源代码编译在此阶段完成 |
测试 Test | 测试 | 使用适当的单元测试框架(例如JUnit)运行测试。 |
包装 package | 打包 | 将编译后的代码打包成可分发的格式,例如 JAR 或 WAR |
检查 verify | 检查 | 对集成测试的结果进行检查,以保证质量达标 |
安装 install | 安装 | 安装打包的项目到本地仓库,以供其他项目使用 |
部署 deploy | 部署 | 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程 |
3、Site 生命周期
site:生成项目文档和站点信息。
deploy-site:将生成的站点信息发布到远程服务器,以便共享项目文档。