Maven的理解与应用

news2024/9/21 18:45:12

Maven使用

一、Maven的含义

Maven是一个构建项目的工具,也是一个管理项目的工具

二、Maven的应用
  • 构建项目

  • 管理依赖

  • 做项目的热部署

  • 基于项目做多模块(modle)的构建

三、Maven的安装

注意:maven本身不需要安装,下载解压就可以了

  1. 配置环境变量

变量名路径
M2_HOMEC:\apache-maven-3.6.0
Path%M2_HOME%\bin
  1. 验证是否配置成功

打开cmd输入mvn -version

四、使用命令操作Java项目
4.1 创建Java项目
  1. 进入工作空间,取名(xxxMavenWorkspace)

  1. cd C:\MavenWorkspace 进入到此目录

  1. 输入命令来找模板 mvn archetype:generate

  1. 默认出现10个常见的模板 默认选择的是 7号模板(用来创建 java项目org.apache.maven.archetypes:maven-archetype-quickstart)

  1. 填写groupId -- 组别(今天你的认为就是包名)

  1. 填写 artifactId -- 项目名

  1. 填写 version -- 版本号(这个直接默认就好,一般情况下不改)

  1. 填写 package -- 包名(默认是groupId,这里默认就好)

  1. 输入 Y (确定)

  2. 构建项目

4.2 项目目录解析

MavenWorkspace\JavaTest01\src

MavenWorkspace\JavaTest01\src\main

C:\MavenWorkspace\JavaTest01\src\main\java -- 存放java源文件

C:\MavenWorkspace\JavaTest01\src\test -- 存放测试文件

MavenWorkspace\JavaTest01\pom.xml -- 插件管理、项目的依赖管理、整个项目自己的坐标

4.3 运行项目
  1. cd C:\MavenWorkspace\JavaTest01 进入此目录

  1. mvn package项目打包,此时会在项目根目录中生产target文件夹

  1. cd C:\MavenWorkspace\JavaTest01\target 进入此目录

  1. java -cp JavaTest01-1.0-SNAPSHOT.jar com.dream.test01.App 运行代码

注意:

mvn clean-----清空target文件

mvn install :打包并将这个jar文件放到本地仓库(管理jar文件的本地库)

mvn test:运行所有的测试用例

五、使用命令操作JavaWeb项目
5.1 创建JavaWeb项目
  1. 进入工作空间,取名(xxxMavenWorkspace)

  1. cd C:\MavenWorkspace 进入到此目录

  1. 输入命令来找模板 mvn archetype:generate

  1. 选择10号模板(用来创建Web项目org.apache.maven.archetypes:maven-archetype-webapp)

  1. 填写groupId -- 组别(今天你的认为就是包名)

  1. 填写 artifactId -- 项目名

  1. 填写 version -- 版本号(这个直接默认就好,一般情况下不改)

  1. 填写 package -- 包名(默认是groupId,这里默认就好)

  1. 输入 Y (确定)

  2. 构建项目

5.2 项目目录解析

MavenWorkspace\WebTest01\src

MavenWorkspace\WebTest01\src\main

MavenWorkspace\WebTest01\src\main\resources存放资源文件

MavenWorkspace\WebTest01\src\main\webapp 存放前端资源和web.xml

C:\MavenWorkspace\WebTest01\pom.xml 插件管理、项目的依赖管理、整个项目自己的坐标

注意:mvn package项目打包,此时会在项目根目录中生产target文件夹

六、在IDEA中配置Maven
  1. 配置maven的国内仓库/中央仓库

位置:C:\apache-maven-3.6.0\conf\settings.xml

<mirrors>
​
<!--
​
 <mirror>
​
    <id>mirrorId</id>
​
    <mirrorOf>repositoryId</mirrorOf>
​
    <name>Human Readable Name for this Mirror.</name>
​
    <url>http://my.repository.com/repo/path</url>
​
 </mirror>
​
-->
​
    <mirror>
​
       <id>alimaven</id>
​
       <name>aliyun maven</name>
​
       <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
​
       <mirrorOf>central</mirrorOf>    
​
    </mirror>
​
</mirrors>
​
​
  1. 配置maven的本地仓库

    位置:C:\apache-maven-3.6.0\conf\settings.xml

    <!-- 
    ​
      localRepository
    ​
        | The path to the local repository maven will use to store artifacts.
    ​
        |
    ​
        | Default: ${user.home}/.m2/repository
    ​
       <localRepository>/path/to/local/repo</localRepository>
    ​
    -->
    ​
      <localRepository>C:\.m2\repository</localRepository>

  2. 在IDEA中配置Maven -- File--> Setting

七、 在IDEA中操作Java项目

八、在IDEA中操作Web项目

其余步骤用上

解析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.dream.test01</groupId>
​
 <artifactId>WebTest02</artifactId>
​
 <version>1.0-SNAPSHOT</version>
​
 <packaging>war</packaging>
​
 <!--
​
•     <packaging>jar</packaging>打包的时候打包成jar文件 - Java项目
​
•     <packaging>war</packaging>打包的时候打包成war文件 - Web项目
​
•     <packaging>pom</packaging>不打包,表示聚合项目工程
​
 -->
​
 
​
 <name>WebTest02 Maven Webapp</name>
​
 <!-- FIXME change it to the project's website -->
​
 <url>http://www.example.com</url>
​
 
​
 <properties>
​
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
​
  <maven.compiler.source>1.8</maven.compiler.source>
​
  <maven.compiler.target>1.8</maven.compiler.target>
​
 </properties>
​
 
​
 <!--项目的jar依赖-->
​
 <dependencies>
​
  <dependency>
​
   <groupId>junit</groupId>
​
   <artifactId>junit</artifactId>
​
   <version>4.11</version>
​
   <scope>test</scope><!--表示在测试的时候有效-->
​
  </dependency>
​
 
​
  <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
​
  <dependency>
​
   <groupId>javax.servlet</groupId>
​
   <artifactId>javax.servlet-api</artifactId>
​
   <version>4.0.1</version>
​
   <scope>provided</scope><!--表示在编译和测试过程中有效,最后生成的war包时不会加入-->
​
  </dependency>
​
 </dependencies>
​
 
​
 <!--项目的构建的时候使用的信息-->
​
 <build>
​
  <finalName>WebTest02</finalName>
​
 </build>
​
</project>

注意:编写java代码的位置问题

在web项目中对的src/main中创建java并设置成源码文件夹

九、在IDEA中操作聚合项目(父工程项目/多模块构建)

其余步骤同上

目录解析:

创建子级工程:

右键父级工程 --> new --> moudle---后面的步骤和创建单个工程一样

使用maven构建项目的时候 需要先找模板 通过模板来创建 项目

十.聚合项目中工程之间相互引用

含义:在一个子级工程中引用另一个子级工程中的资源

在子级工程pom.xml中配置另一个子级工程的项目坐标

<dependencies>
​
 <dependency>
​
  <artifactId>StudentManagerSystemPojo</artifactId>
​
  <groupId>com.dream.test01</groupId>
​
  <version>1.0-SNAPSHOT</version>
​
 </dependency>
​
<dependencies>
十一、Maven管理项目依赖

含义:在Maven仓库中寻找Jar包

仓库分类:

本地仓库:本地的一个文件夹,用来存放所有的jar包,由自己维护 远程仓库(或私服):由公司或单位创建的一个仓库,由公司维护 中央仓库:互联网上的仓库,由Maven团队维护(国内一般设计阿里云为中央仓库,下载jar更快)

寻找流程:本地仓库 --> 远程仓库(或私服) --> 中央仓库

导包流程:

  1. https://mvnrepository.com查询jar包描述

  2. 在项目pom.xml中配置jar包描述,IDEA将jar包下载到本地仓库即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2034704.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM(十)深入理解JVM类加载模型以及双亲委派模型

本文详细介绍了Java的类加载机制&#xff0c;包括加载、链接和初始化三个阶段。强调了双亲委派模型的重要性&#xff0c;这是一种避免重复加载类并维持Java核心库安全的类加载策略。文章还探讨了Java类加载器的不同类型&#xff0c;包括启动类加载器、扩展类加载器和应用类加载…

Spring Cloud Alibaba 集成分布式定时任务调度功能

作者&#xff1a;千习 背景简介 定时任务是指在约定的时间&#xff0c;或者按照固定频率周期性执行的任务。在企业应用中&#xff0c;非用户行为发起的后台业务&#xff0c;一般都是通过定时任务来实现&#xff0c;常见场景如下&#xff1a; 异步数据处理&#xff1a;比如先…

【gpt生成文本的回复的原理和代码,通俗思路清晰】

首先介绍了贪婪解码 其次为增家多样性&#xff0c;用温度系数和TopK增加采样 真实的采样步骤 1、topk备选tokens 2、用维度系数大于1让概率平衡一下&#xff0c;3.再用softmax&#xff0c;4.根据概率分布采样 1、贪婪解码 # 之前&#xff0c;我们总是使用torch.argmax采样最大…

年薪30万+,TOP大厂月薪10万+....网络安全工程师凭什么?

时代飞速发展&#xff0c;我们的工作、生活乃至整个社会的运转都越来越依赖于网络。也因此&#xff0c;网络的无处不在带来了前所未有的安全风险。 从个人隐私泄露到企业机密被盗&#xff0c;再到国家关键基础设施遭受攻击&#xff0c;网络安全问题无处不在&#xff0c;威胁着…

SQL之使用存储过程循环插入数据

1、已经创建了任务日志表 CREATE TABLE t_task_log (id bigint NOT NULL AUTO_INCREMENT,task_id bigint NOT NULL COMMENT 任务ID,read_time bigint NOT NULL COMMENT 单位秒&#xff0c;读取耗时,write_time bigint NOT NULL COMMENT 单位秒&#xff0c;写入耗时,read_size …

8月13日学习笔记 LVS

一.描述以及工作原理 1. 什么是LVS linux virtural server的简称&#xff0c;也就是linxu虚拟机服务器&#xff0c;这是一个 由章文嵩博士发起的开源项目&#xff0c;官网是 http://www.linuxvirtualserver.org,现在lvs已经是linux内核标 准的一部分&#xff0c;使用lvs可以达…

网络剪枝——network-slimming 项目复现

目录 文章目录 目录网络剪枝——network-slimming 项目复现clone 存储库Baselinevgg训练结果 resnet训练结果 densenet训练结果 Sparsityvgg训练结果 resnet训练结果 densenet训练结果 Prunevgg命令结果 resnet命令结果 densenet命令结果 Fine-tunevgg训练结果 resnet训练结果 …

5个小众宝藏软件看看有没有你喜欢的

冷门APP分享来啦&#xff0c;这5个小众宝藏软件看看有没有你喜欢的吧&#xff01; 1.space登月计划 从地球到月球的大概距离是3.84亿米&#xff0c;而登月得消耗掉大约3.2亿千卡的能量。一个人想单飞登月得花上万年。 但在space上&#xff0c;可以和小伙伴一起合作玩登月游戏…

记录Java使用websocket

实现场景&#xff1a;每在小程序中添加一条数据时&#xff0c;后台将主动推送一个标记给PC端&#xff0c;PC端接收到标记将进行自动播放音频。 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import or…

GitHub 2FA中国认证教程

1. 问题描述 在github上有过代码贡献的账号在登录时需要进行2FA双重身份验证。 这是github官方给出的关于2FA的解释&#xff1a; 官方文章地址&#xff1a;点击进入 这是登录时2FA的验证界面&#xff1a; 我们需要使用扩展程序解析这个二维码拿到2FA验证码&#xff0c;填入二维…

python爬虫滑块验证及各种加密函数(基于ddddocr进行的一层封装)

git链接: https://github.com/JOUUUSKA/spider_toolsbox 这里写目录标题 一.识别验证码1、识别英文&#xff0b;数字验证码2、识别滑块验证码3、识别点选验证码 一.识别验证码 git链接: https://github.com/JOUUUSKA/spider_toolsbox 创作不易记得stars 1、识别英文&#xf…

Arduino控制带编码器的直流电机速度

Arduino DC Motor Speed Control with Encoder, Arduino DC Motor Encoder 作者 How to control dc motor with encoder:DC Motor with Encoder Arduino, Circuit Diagram:Driving the Motor with Encoder and Arduino:Control DC motor using Encoder feedback loop: How …

一文读懂Xinstall专属链接推广,轻松解决App运营痛点!

随着互联网的飞速发展&#xff0c;App推广和运营面临着前所未有的挑战。传统的营销方式已经难以适应多变的市场环境&#xff0c;而Xinstall专属链接推广应运而生&#xff0c;成为解决App获客难题的新利器。本文将深入探讨Xinstall专属链接推广如何帮助推广者触达更多用户&#…

MacOS vue-cli为2.9.6 无法升级的解决方案

背景 今天需要验证plop工具做前端工程化实践&#xff0c;打算使用vue3方式&#xff0c;结果发现vue-cli 2.9.6一直无法升级成功&#xff0c;也无法通过vue-cli生成vue3模板工程&#xff0c;测试了几把后&#xff0c;最终升级vue-cli成功&#xff0c;为了能给出现同样问题的小伙…

上瘾模型与产品激励系统

​产品要增加客户粘性&#xff0c;使产品深入人心就需要让用户对产品上瘾。如何使用户对产品上瘾&#xff1f;对于产品来说&#xff0c;就需要建立产品的激励系统。 产品的激励系统要做的事就是对用户进行激励&#xff0c;就是让用户主动完成产品或服务想要他们做的事情。 那么…

重启人生计划-勇敢者先行

&#x1f973;&#x1f973;&#x1f973; 茫茫人海千千万万&#xff0c;感谢这一刻你看到了我的文章&#xff0c;感谢观赏&#xff0c;大家好呀&#xff0c;我是最爱吃鱼罐头&#xff0c;大家可以叫鱼罐头呦~&#x1f973;&#x1f973;&#x1f973; 如果你觉得这个【重启人生…

分布式与微服务详解

1. 单机架构 只有一台机器&#xff0c;这个机器负责所有的工作 &#xff08;这里假定一个电商网站&#xff09; 现在大部分公司的产品都是单机架构 。 2. 分布式架构 一台机器的硬件资源是有限的&#xff0c;服务器处理请求是需要占用硬件资源的&#xff0c;如果业务增长&a…

前端学习笔记-JS篇-01

JS基础Day1-01-必看-基本软件以及准备工作_哔哩哔哩_bilibili JavaScript介绍 是什么 1.JavaScript (是什么?) 是一种运行在客户端(浏览器)的编程语言&#xff0c;实现人机交互效果2.作用(做什么?) 网页特效(监听用户的一些行为让网页作出对应的反馈)表单验证(针对表单…

streampark-使用记录-备忘

1、重新部署的任务会读历史配置&#xff08;包括错误配置&#xff09;&#xff0c;即使点击确认了也无效 解决&#xff1a;复制新的任务&#xff0c;修改ckeckpoint 路径&#xff08;重要&#xff09; 2、任务启动报错&#xff0c;即使后续把脚本改正确或者复制其他脚本过来执…

什么是 Java?

探索 Java&#xff0c;一种多功能且功能强大的编程语言。释放其构建强大应用程序的潜力。 前言 简单来说&#xff0c;Java 是一种用于开发软件应用程序的面向对象设计的编程语言。截至 2019 年&#xff0c;它是世界上最受欢迎的编程语言&#xff0c;尤其是因为它是开源的&#…