Maven的使用

devtools/2024/9/24 8:23:22/

1.第一个Maven工程

1.1 创建约定目录结构

​ Hello

​ src

​ ——main(存放主程序)

​ ————java(存放源代码文件)

​ ————resources(存放配置文件和资源文件)

​ ——test(存放测试程序)

​ ————java

​ ————resources

​ pom.xml

1.2 创建核心文件 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>com.study</groupId><artifactId>maven</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.0</version><scope>test</scope></dependency></dependencies>
</project>

1.3 编写主程序

在src/main/java/com/studyMaven/start目录下新建文件Hello.java

java">package com.studyMaven.start;public class Hello {public String sayHello(String name) {return "Hello" + name + "!";}
}

1.4 编写测试代码

在src/test/java/com/studyMaven/start目录下新建文件HelloTest.java

java">package com.studyMaven.start;import org.junit.Test;
import static org.junit.Assert.assertEquals;public class HelloTest {@Testpublic void testHello(){Hello hello = new Hello();String result = hello.sayHello("maven");assertEquals("Hello maven!",result);}
}

1.5 运行基本的Maven命令

打开cmd命令行,进入Hello项目根目录(pom.xml文件所在目录)执行mvn compile命令,查看根目录变化

cmd 中继续录入mvn clean命令,然后再次查看根目录变化

cmd 中录入 mvn compile命令, 查看根目录变化

cmd 中录入 mvn test-compile命令, 查看target目录的变化

cmd 中录入 mvn test命令,查看target目录变化

cmd 中录入 mvn package命令,查看target目录变化

cmd 中录入 mvn install命令, 查看本地仓库的目录变化

注意:运行Maven命令时一定要进入pom.xml文件所在的目录!

2.Maven连网问题

  • 配置本地仓库

  • Maven的核心程序并不包含具体功能,仅负责宏观调度。具体功能由插件来完成。Maven核心程序会到本地仓库中查找插件。如果本地仓库中没有就会从远程中央仓库下载。此时如果不能上网则无法执行Maven的具体功能。为了解决这个问题,可以将Maven的本地仓库指向一个在联网情况下下载好的目录。

  • Maven默认的本地仓库:~.m2\repository目录。

    ​ Tips:~表示当前用户的家目录。

  • Maven的核心配置文件位置:D:\develop\apache-maven-3.3.9\conf\settings.xml

  • 设置方式(本地仓库地址): <localRepository>以及准备好的仓库位置</localRepository>

  • 为了以后下载jar包方便,配置阿里云镜像

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

3.IDEA中配置Maven

maven_128">3.1 设置maven的安装目录及本地仓库

在这里插入图片描述

  • Maven home directory:可以指定本地 Maven 所在的安装目录;此外,这里不建议使用IDEA默认的。
  • User settings file / Local repository:可以指定 Maven 的 settings.xml 位置和本地仓库位置。

3.2 配置Maven自动导入依赖的jar包

在这里插入图片描述

  • Import Maven projects automatically:表示 IntelliJ IDEA 会实时监控项目的 pom.xml 文件,进行项目变动设置,勾选上。
  • Automatically download:在 Maven 导入依赖包的时候是否自动下载源码和文档。默认是没有勾选的,也不建议勾选,原因是这样可以加快项目从外网导入依赖包的速度,如果需要源码和文档的时候我们到时候再针对某个依赖包进行联网下载即可。IntelliJ IDEA 支持直接从公网下载源码和文档的。
  • VM options for importer:可以设置导入的 VM 参数。一般不需要主动改,除非项目真的导入太慢了再增大此参数。

4.Maven 打包插件

  Maven本身的打包插件不负责将依赖的jar包一并打入到jar包中。如果项目所依赖的jar包在服务器环境中提供了还好,如果服务器环境中没有提供,则比较悲惨,运行各种ClassNotFound….;因此需要一款能够将项目所依赖的jar包 一并打入到jar中的插件来解决这些问题。

	<build><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><configuration><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs><archive><manifest><!-- 指定主类 --><mainClass>xxx.xxx.XXX</mainClass></manifest></archive></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins></build>

5.总结

  • Maven项目:确定目录结构、pom.xml、主程序以及测试程序
  • 通过一个Maven 的入门案例熟悉Maven的使用。

http://www.ppmy.cn/devtools/31860.html

相关文章

基于python+django网易新闻+评论的舆情热点分析平台

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Php和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…

企业定制AI智能名片商城小程序:重塑营销场景,引领数字化营销新纪元

在数字化时代的浪潮中&#xff0c;多企业AI智能名片商城小程序以其独特的魅力和创新的功能&#xff0c;为消费者带来了前所未有的购物体验。它不仅是一个汇聚各类商品的购物平台&#xff0c;更是一个充满活力和创造力的社群生态。通过强化社群互动、鼓励用户生成内容以及引入积…

使用Axios从前端上传文件并且下载后端返回的文件

前端代码&#xff1a; function uploadAndDownload(){showLoading();const fileInput document.querySelector(#uploadFile);const file fileInput.files[0];const formData new FormData()formData.append(file, file)return new Promise((resolve, reject) > {axios({…

cmd查看局域网内所有设备ip

说明&#xff1a;最近碰到一个新问题&#xff0c;就是有一个安卓设备&#xff0c;安装了一个app导致死机了&#xff0c;app设置了开机重启&#xff0c;所以&#xff0c;无论重启还是关机&#xff0c;都是进来就白屏&#xff0c; 这可把人愁坏了&#xff0c;直接死循环了 无论…

【Excel】excel计算相关性系数R、纳什效率系数NSE、Kling-Gupta系数KGE

对于采用的数据&#xff1a; B2:B10958是观测值的所在范围 C2:C10958是模型计算值的所在范围 一、相关系数R是用来衡量两个变量之间线性关系强度和方向的统计量。在水文学和气象学中&#xff0c;常用的相关系数是皮尔逊相关系数&#xff08;Pearson correlation coefficient&am…

前端初学者的 CSS 入门

文章导读&#xff1a;AI 辅助学习前端&#xff0c;包含入门、进阶、高级部分前端系列内容&#xff0c;当前是 CSS 的部分&#xff0c;瑶琴会持续更新&#xff0c;适合零基础的朋友&#xff0c;已有前端工作经验的可以不看&#xff0c;也可以当作基础知识回顾。 从这篇文章开始…

Golang 设计模式(行为型)

文章目录 策略模式迭代器模式访问者模式观察者模式命令模式模板方法模式责任链模式状态模式 策略模式 策略模式是一种行为型设计模式&#xff0c;它定义了一系列算法&#xff0c;并将每个算法封装成独立的对象&#xff0c;使得它们可以互相替换。在 Go 语言中&#xff0c;策略…

第十五届蓝桥杯省赛大学B组(c++)

很幸运拿了辽宁赛区的省一,进入6月1号的国赛啦... 这篇文章主要对第十五届省赛大学B组(C)进行一次完整的复盘,这次省赛2道填空题6道编程题: A.握手问题 把握手情景看成矩阵: 粉色部分是7个不能互相捂手的情况 由于每个人只能和其他人捂手, 所以黑色情况是不算的 1和2握手2和…