目录

Java小白-管理项目工具Maven2初识Maven

Java小白-管理项目工具Maven(2)初识Maven

一、Maven安装

①安装jdk1.8或以上版本

②下载Maven(此为3.6.0):地址:

下载地址:

③安装Maven到无中文路径即可

https://i-blog.csdnimg.cn/direct/b005e7931ca04f7c86bca8f53e99eafe.png

bin:含有mvn运行的脚本

boot:含有plexus-classworlds类加载器框架

conf:含有settings.xml配置文件

可以在这里设置自己的maven 本地仓库,如果不写的话默认是在C:\Users<你的用户名>m2\repository

		  <localRepository>D:\maven</localRepository>

https://i-blog.csdnimg.cn/direct/2ed7c480fb924791ae8299cb702aa8db.png

如果有需要可以写阿里云的镜像,这样配置东西的时候就会快一些

  <mirrors>
    <mirror>
		<id>alimaven</id>
		<name>aliyun maven</name>
		<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
		<mirrorOf>central</mirrorOf>
   </mirror>
  </mirrors>

https://i-blog.csdnimg.cn/direct/596c98bb7d96428c97590b7faa89109c.png

lib:含有Maven运行时所需要的java类库

LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三方软件等简要介绍

二、Maven的环境变量

Windows 系统
  1. 打开环境变量设置

    • 任务栏搜索框直接搜“环境变量” https://i-blog.csdnimg.cn/direct/43f30e4bc7d74b279d787829b8c226c6.png
    • https://i-blog.csdnimg.cn/direct/3cfdde548aa148d2b51bfee5401bb7d7.png
  2. 配置 MAVEN_HOME

    • https://i-blog.csdnimg.cn/direct/698338a6db0d4f65b3a5956f6737bd98.png
    • 变量名: MAVEN_HOME,接下来浏览目录将变量值填入后确定
    • https://i-blog.csdnimg.cn/direct/3b2d925a3888489ea879b330fc1dba41.png
  3. 配置 Path

    • 在“系统变量”中找到名为 Path 的变量,点击“编辑”。 https://i-blog.csdnimg.cn/direct/5176741214bc44fa88f46cfd711d385a.png
    • 在弹出的窗口中,点击“新建”,添加 Maven 的 bin 目录路径 https://i-blog.csdnimg.cn/direct/29e0fee61c3847a79694649993d964b3.png
    • 确保不要覆盖原有的路径,而是添加到现有路径的末尾
  4. 验证安装:Win+R输入cmd    输入mvn- versioin 可以下载多个maven版本,我这里又用的3.6.2,这就算成功了!

三、Maven的第一个项目

根据下图创建文件(在哪创都行)

https://i-blog.csdnimg.cn/direct/923ec87c807e49bf9e62a305109b3002.png

ok我创好了

https://i-blog.csdnimg.cn/direct/567d7c9ccbc14bd9a615ccb9e20f1263.png

在项目Hello根目录建立pom.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>

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

package cn.tx.maven;
public class Hello {
	public String sayHello(String name){
		return "Hello "+name+"!";
	}
}

/src/test/java/cn/tx/maven目录下新建测试文件HelloTest.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);		
	}
}

进行maven的项目操作

打开cmd命令行,进入Hello项目根目录执行 mvn compile命令,查看根目录变化(自动创建了target目录,生成一系列) https://i-blog.csdnimg.cn/direct/d4f68092ee6b46e996b4f9590d507a7f.png

cmd 中继续录入mvn clean命令,然后再次查看根目录变化(发现把我的target目录清除了)

https://i-blog.csdnimg.cn/direct/d243ca0ef58343bbaf37d8ef5a763b42.png

cmd 中录入 mvn clean compile命令, 查看根目录变化 https://i-blog.csdnimg.cn/direct/c2931458a6034f81a347d641d768251f.png

cmd 中录入 mvn clean test命令,查看根目录变化(clean → test‌:先清理旧构建产物,再编译代码并运行测试。) https://i-blog.csdnimg.cn/direct/f264af47686c49eba8e98808c3e7f365.png https://i-blog.csdnimg.cn/direct/978ae6dfeede4194adde75ac23c7ed7f.png

cmd 中录入 mvn clean package命令,查看根目录变化 https://i-blog.csdnimg.cn/direct/275889e42ad64a788d72be189c7588d2.png

cmd 中录入 mvn clean install 查看仓库会把项目安装到仓库里

四、第二个项目

HelloFriend/

├── src/

│   ├── main/

│   │   ├── java/                # 存放主项目的 Java 源代码

│   │   └── resources/           # 存放主项目的资源文件(如配置文件)

│   └── test/

│       ├── java/                # 存放测试相关的 Java 源代码

│       └── resources/           # 存放测试相关的资源文件

└── pom.xml                      # Maven 项目的配置文件

在项目HelloFriend根目录建立pom.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>

在src/main/java/cn/tx/maven目录下新建文件HelloFriend.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";
	}

}

/src/test/java/cn/tx/maven目录下新建测试文件HelloFriendTest.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);		

	}
}

现在Hello目录下执行mvn clean install

https://i-blog.csdnimg.cn/direct/9a731629afac4e33ad32c077127ba75c.png

https://i-blog.csdnimg.cn/direct/05283ca341e147da866c423a7fe99cd2.png

在HelloFriend目录下执行命令mvn package

https://i-blog.csdnimg.cn/direct/0efe0a068b9d443b930973e902ddae12.png

https://i-blog.csdnimg.cn/direct/fc80e0aa8bb149079c827b60c6ca13cf.png

发现jar包就打包好哩

五、Maven仓库配置

何为Maven仓库?

Maven仓库是用于统一存储和管理Maven项目依赖的资源库。它为项目构建提供了一个集中化的存储和检索机制,确保项目所需的依赖能够被快速、准确地获取。

Maven仓库布局

Maven仓库通过坐标系统( groupIdartifactIdversion )来定义每个依赖在仓库中的唯一存储路径。其路径格式通常为:

groupId/artifactId/version/artifactId-version.packaging

例如,对于坐标为 com.example:my-library:1.0.0 的依赖,其在仓库中的路径为:

com/example/my-library/1.0.0/my-library-1.0.0.jar

仓库的分类

Maven仓库主要分为以下几类:

本地仓库
  • 路径 :默认位于用户主目录下的 ~/.m2/repository/ ,但可以通过配置文件修改路径。
  • 特点 :每个用户只有一个本地仓库,用于存储从远程仓库下载的依赖,避免重复下载,提高构建效率。

远程仓库

  • 中央仓库 :这是Maven默认的远程仓库,包含了大多数常用的Java库和依赖。其地址为 https://repo1.maven.org/maven2/

    注意 :您提供的链接 http://repo1.maven.org/maven2 可能由于网络问题或其他原因无法访问。建议检查链接的合法性或尝试使用HTTPS协议的地址 https://repo1.maven.org/maven2/

  • 私服(私有远程仓库) :这是架设在局域网内的特殊远程仓库,用于存储组织内部的私有依赖或未公开的第三方库。常见的私服工具包括Nexus和Artifactory。

本地仓库

其实前面已经提到过,我们设置全局设置本地仓库在"D:\Class_app\apache-maven-3.6.2\conf\settings.xml"文件(自己可以随便安排位置,只需要在settings中进行配置),修改该文件会影响所有使用该Maven的用户的本地仓库,保存退出即可。

创建Maven的几种方法