Maven架构的依赖管理和项目构建

​​​​​​什么是依赖管理

第三方依赖包的管理,可以连接互联网下载项目所需第三方jar包。

自己开发的模块的管理,可以像引用第三方依赖包一样引用自己项目的依赖包。

Maven的依赖管理方式和传统方式有什么区别

传统方式:从官网手动下载jar包,并拷贝到项目的lib目录下

maven:maven的远程仓库自动连接本地仓库,并通过用户编写的pom.xml文件获取目标jar包的坐标(引入依赖)

什么是项目构建

项目构建是一个从编写源代码到编译、测试、运行、打包、部署的过程

传统项目和maven项目构建的区别

传统项目:

打开Idea编写源代码配置文件 ,对源代码进行编译,可以使用Junit 进行单元测试,把项目打成war包,部署到++Tomcat服务器++中运行。

maven项目:

maven将项目构建过程进行标准化 ,++每个阶段++都可以使用一个命令来完成。

清理 --> 编译 --> 测试 --> 报告 --> 打包 --> 部署

使用maven项目构建的好处

可以++通过命令完成项目构建++。(测试:使用mvn tomcat:run的命令来发布运行项目)

maven对每个构建阶段进行规范,有利于大型团队协作开发。

示例

一:

1、 按照约定创建 M aven项目目录(总文件夹命名为hello)
  • src/main/java ------ 存放项目的.java文件
  • src/main/resources ------ 存放项目资源文件,如spring, mybatis配置文件
  • src/test/java ------ 存放所有测试.java文件,如JUnit测试类
  • src/test/resources ------ 测试资源文件
  • target ------ 项目输出位置
  • pom.xml

创建后的样式如图:

2、在项目Hello根目录建立pom.xml并添加内容
XML 复制代码
<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>cn.tx.maven</groupId>
  <artifactId>Hello</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>Hello</name>
  
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.9</version>
			<scope>test</scope>
		</dependency>		
		
	</dependencies>
</project>
3、创建Hell o.java 文件

在src/main/java**/cn/tx**/maven目录下新建文件Hello.java并添加内容

++注意文件夹名字不要错++

java 复制代码
package cn.tx.maven;
public class Hello {
	public String sayHello(String name){
		return "Hello "+name+"!";
	}
}
4、创建 HelloTest.java 文件

在/src/test/java**/cn/tx**/maven目录下新建测试文件HelloTest.java

++注意文件夹名字不要错++

java 复制代码
package cn.tx.maven;
import org.junit.Test;
import static junit.framework.Assert.*;
public class HelloTest {
	@Test
	public void testHello(){
		Hello hello = new Hello();
		String results = hello.sayHello("maven");
		assertEquals("Hello maven!",results);		
	}
}
5、进行maven的项目操作
  1. 打开cmd命令行,进入Hello项目根目录执行 mvn compile命令,查看根目录变化
  2. cmd 中继续录入mvn clean命令,然后再次查看根目录变化
  3. cmd 中录入 mvn clean compile命令, 查看根目录变化
  4. cmd 中录入 mvn clean test命令,查看根目录变化
  5. cmd 中录入 mvn clean package命令,查看根目录变化
  6. cmd 中录入 mvn clean install 查看仓库会把项目安装到仓库里

结果如图:

此时根目录下的target文件夹中应会出现

4.文件根目录应暂无变化

5.内容应和4相同

6.可以看到target目录下新添jar包

二:

1、按照约定创建Maven项目目录

创建方式同上,且该项目依赖示例一

HelloFriend

--src

-----main

----------java

----------resources

-----test

---------java

---------resources

--pom.xml

2、在项目HelloFriend根目录建立pom.xml
XML 复制代码
<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>cn.tx.maven</groupId>
  <artifactId>HelloFriend</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>HelloFriend</name>
  
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.9</version>
			<scope>test</scope>
		</dependency>		
		
		<dependency>
			<groupId>cn.tx.maven</groupId>
			<artifactId>Hello</artifactId>
			<version>0.0.1-SNAPSHOT</version>
			<scope>compile</scope>
		</dependency>		
		
	</dependencies>
</project>
3、创建 HelloFriend.java 文件

在src/main/java/cn/tx/maven目录下新建文件HelloFriend.java

java 复制代码
package cn.tx.maven;
import cn.tx.maven.Hello;
public class HelloFriend {
	public String sayHelloToFriend(String name){
		
		Hello hello = new Hello();
		String str = hello.sayHello(name)+" I am "+this.getMyName();
		System.out.println(str);
		return str;
	}
	public String getMyName(){
		return "John";
	}
}
4、创建 HelloFriendTest.java 文件

在/src/test/java/cn/tx/maven目录下新建测试文件HelloFriendTest.java

java 复制代码
package cn.tx.maven;
import static junit.framework.Assert.assertEquals;
import org.junit.Test;
import cn.tx.maven.Hello;
public class HelloFriendTest {
	@Test
	public void tesHelloFriend(){
		HelloFriend helloFriend = new HelloFriend();
		String results = helloFriend.sayHelloToFriend("zhangsan");
		assertEquals("Hello zhangsan! I am John",results);		
	}
}
5、测试打包He lloFriend 项目

在HelloFriend目录下执行命令mvn package

此时会出现系统报错

系统报错提示:Could not find artifact cn.tx.maven:Hello:jar:0.0.1-SNAPSHOT,表示无法找到HelloFriend所依赖的Hello 0.0.1-SNAPSHOT.jar

故此我们需要重新构建第一个项目Hello并安装到数据仓库,在命令行Hello根目录下执行mvn clean install

对Hello项目进行清理并安装后,对HelloFriend项目再次进行打包

可以看到本次打包成功,说明HelloFriend项目已经可以加载Hello项目所打包的jar包

相关推荐
鬼火儿3 分钟前
Golang笔记——Interface类型
java·后端
蓝-萧12 分钟前
Redis——Windows安装
java·后端
祈祷苍天赐我java之术18 分钟前
如何在Java中整合Redis?
java·开发语言·redis
极小狐44 分钟前
极狐GitLab 18.5 正式发布,更新 Maven 虚拟仓库 UI(Beta)、全新个人主页、实例级合规与安全策略管理 以及 DAST 认证脚本 等
java·gitlab·maven
王元_SmallA1 小时前
【玩转全栈】----Django基本配置和介绍
java·后端
LiuYaoheng1 小时前
【Android】Drawable 基础
android·java
AlianNiew1 小时前
从源码到实战:用 Java 打造“限时+防重放”的文件安全预览链接
java·后端
●VON2 小时前
【成长纪实】三个月的鸿蒙成长之路:大学生从0开始的鸿蒙心得与体会
华为·架构·harmonyos·鸿蒙·鸿蒙系统·鸿蒙开发·成长纪实
null or notnull2 小时前
java服务器空间不够时:将多个服务器的文件存放至同一个服务器上(使用映射器的办法)
java·运维·服务器·java-ee
冷雨夜中漫步2 小时前
高级系统架构师笔记——系统质量属性与架构评估(1)软件系统质量属性
笔记·架构·系统架构