maven

引导

项目中使用的 jar 包至少是成百上千,每个 jar 包之间还会有依赖性,jar 包也很难去找,所以人为的管理这么多 jar 包显然是不合理的
我们就需要可以管理这些包的工具,Maven 就是其中之一

Intellij IDEA 添加jar包

https://blog.csdn.net/qq_43599841/article/details/127368168

法1 lib – jar

步骤1:复制
jar包复制粘贴到项目的lib目录下
1 对于导入的eclipse项目,该方式添加的jar包没有任何反应,用make编译项目会报错
2 对于在idea中创建的项目,该方式添加jar包,编译不报错

步骤2:右键

法2 导入

在项目配置中导入: project structure – libraries – add jar – add to modules


导入项目外部jar包:

project structure – modules – add jar

在这里插入图片描述

法3 maven

教程

中文官网
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>ccc</groupId>
		<artifactId>abc-parent</artifactId>
		<version>2.1.1.1-RELEASE</version>
		<relativePath>../pom.xml</relativePath>
	</parent>

	<artifactId>abc</artifactId>
	<packaging>jar</packaging>
	<name>abc</name>

一个项目可能有4个子模块
你引用的可以是其中的1个模块

	<dependency>
		<groupId>xb-1</groupId>
		<artifactId>abcd</artifactId>
		<version>${abcd.version}</version>
		<exclusions>
			<exclusion>
				<groupId>i.n</groupId>
				<artifactId>n-a</artifactId>
			</exclusion>
		</exclusions>
	</dependency>

<version>${abcd.version}</version> 关联的是 父pom 的 ar-2.2.1-SNAPSHOT.xml

	<parent>
		<groupId>xb-2</groupId>
		<artifactId>ar</artifactId>
		<version>2.2.1-SNAPSHOT</version>
	</parent>

甚至是父的父的父
本地库原本是空的,在导包的时候,这些都会导进来

 <properties>
	<!-- 公共配置 -->
	<encoding>UTF-8</encoding>
	<project.build.s>${encoding}</project.build.s>
	<project.reporting.o>${encoding}</project.reporting.o>
	
	<!-- 第三方组件版本号 -->
	<!--使用welink-parent的定义 -->
	<!-- 发现下面两行的${xxx.version} 点不进去 -->
	<ant-launcher.version>${ant.version}</ant-launcher.version>
	<spring-cloud-starter.version>${spring-cloud.version}</spring-cloud-starter.version>
	
	<abc.version>1.2.9</abc.version>
	<abc-1.version>1.2.9</abc-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-INFweb应用文件目录,web项目的信息,比如存放web.xml、本地图片、jsp视图页面
${basedir}/target打包输出目录
${basedir}/target/classes编译输出目录
${basedir}/target/test-classes测试编译输出目录
Test.javaMaven只会自动运行符合该命名规则的测试类
~/.m2/repositoryMaven默认的本地仓库目录位置
● 文件及文件夹解析:
  ○ pom.xml:maven 项目的核心配置文件
  ○ src:源码目录
    ■ main:主体程序目录
      ● java:java 源代码
        ○ com 及以下:package 目录,且与 maven 坐标对应
    ■ test:测试程序目录
      ● java:java 源代码
        ○ com 及以下:同上

目前开发领域的技术发展趋势就是:规范大于配置,配置大于编码

Maven 生命周期

三个标准的生命周期:

1、Clean 生命周期
clean:删除目标目录中的编译输出文件。通常在构建之前执行,确保项目从一个干净的状态开始

2、Default 生命周期(= Build 生命周期)

阶段处理描述
验证 validate验证项目验证项目是否正确且所有必须信息是可用的
编译 compile执行编译源代码编译在此阶段完成
测试 Test测试使用适当的单元测试框架(例如JUnit)运行测试。
包装 package打包将编译后的代码打包成可分发的格式,例如 JAR 或 WAR
检查 verify检查对集成测试的结果进行检查,以保证质量达标
安装 install安装安装打包的项目到本地仓库,以供其他项目使用
部署 deploy部署拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程

3、Site 生命周期
site:生成项目文档和站点信息。
deploy-site:将生成的站点信息发布到远程服务器,以便共享项目文档。

maven artifact

https://zhuanlan.zhihu.com/p/645915419

pom.xml 文件中,我们定义了项目的基本信息

<groupId>com.mycompany</groupId>
<artifactId>MyWeatherLib</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>

四个属性组合在一起,为我们的 Artifact 提供了一个唯一的标识:com.mycompany:MyWeatherLib:1.0.0。
此外,我们指定了 packaging 为 jar,这意味着 Maven 将会生成一个 JAR 文件作为构建输出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_1403034144

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值