【Maven】IDEA创建Maven项目 Maven配置

文章目录

    • 简介
    • 配置
      • 环境变量
      • 配置仓库
      • 测试安装
    • IDEA创建项目
    • pom.xml

简介

Maven 是一个非常流行的项目管理和构建自动化工具,主要应用于 Java 项目的构建、依赖管理和项目信息管理。它是由 Apache 软件基金会维护的开源项目。Maven 的设计理念是通过一个项目对象模型(Project Object Model, POM)来描述项目,并使用声明式的方式定义构建过程。

Maven就是是专门为 Java 项目打造的管理和构建工具,它的主要功能有:

  • 提供了一套标准化的项目结构;
  • 提供了一套标准化的构建流程(编译,测试,打包,发布……);
  • 提供了一套依赖管理机制。

官方下载地址: http://maven.apache.org/download.cgi

安装需要 Java 支持( JDK >= 1.7)

在这里插入图片描述

解压压缩包至目录,推荐安装位置:D:\apache-maven-3.5.2

bin:mvn的运行脚本
boot:mvn类加载器框架
conf:配置文件目录
lib:依赖类库

配置

环境变量

在这里插入图片描述

在这里插入图片描述

配置仓库

配置本地仓库

D:\apache-maven-3.5.2\conf\settings.xml

<localRepository>D:/MavenRepository/repository/</localRepository>

配置阿里云镜像仓库

由于中央存储库在国外,国内可能打不开,所以在 mirrors 标签中添加阿里云镜像仓库配置。

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

测试安装

打开 cmd,输入 mvn -v

在这里插入图片描述

IDEA创建项目

关闭已打开的项目,进入IDEA全局配置界面。

在这里插入图片描述

配置Maven的路径和用户设置文件的位置

  • Maven home path: D:\apache-maven-3.5.2
  • User settings file: D:\apache-maven-3.5.2\conf\settings.xml

在这里插入图片描述

新建项目,选择 Maven Archetype,如下图所示(IDEA2023)。部署 Tomcat 步骤同 Javaweb 项目一样。

在这里插入图片描述

Maven 生命周期是一系列按顺序执行的阶段,用于完成项目的构建流程。

  • clean: 清理项目的工作目录,删除之前构建产生的临时文件。
  • validate: 验证项目的有效性,检查是否满足所有要求。
  • compile: 编译项目的源代码。
  • test: 执行单元测试,但不打包或安装任何东西。
  • package: 将已编译的代码打包成可发布的格式,如 JAR 或 WAR 文件。
  • verify: 在发布前对包进行验证,确保其符合所有标准。
  • install: 将包安装到本地仓库,使其可用于其他 Maven 项目作为依赖。
  • site: 生成项目的站点文档,通常包含关于项目的信息、报告和其他元数据。
  • deploy: 将包部署到远程仓库,使其他人可以通过网络访问该包。

在这里插入图片描述

除了生命周期之外,在 Maven 工具窗口还可以看到 “Plugins” 和 “Dependencies” 标签页,分别用于管理项目的插件和依赖项。

pom.xml

pom.xml 是 Maven 项目的核心配置文件,它包含了构建项目所需的所有信息,如依赖关系、构建目录、插件等。

项目描述

<!-- 指定当前 pom 的版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者组织的唯一标志,由此生成配置时生成的路径 -->
<groupId>org.example</groupId>
<!-- 项目的唯一 ID,一个 groupId 下面可能多个项目,就是靠 artifactId 来区分的 -->
<artifactId>maven01</artifactId>
<!-- 打包方式 一般为 jar、war、zip 或者 pom -->
<packaging>war</packaging>
<!-- 版本号 -->
<version>1.0-SNAPSHOT</version>
<!-- 项目描述名 -->
<name>maven01 Maven Webapp</name>
<!-- 项目官方网站地址, Apache Maven 官方网站地址示例 -->
<url>http://maven.apache.org</url>

引入 jar 包

<!-- 包含所有项目依赖的外部库 -->
<dependencies><!-- 定义单独的依赖项 --><dependency><!-- 依赖项的组 ID,类似于 Java 包名 --><groupId>junit</groupId><!-- 依赖项的项目 ID,类似于 Java 类名 --><artifactId>junit</artifactId><!-- 依赖项的具体版本 --><version>4.11</version><!-- 依赖项的作用范围 --><scope>test</scope></dependency><!-- 可以添加更多依赖项 --><dependency>......</dependency>
</dependencies>

scope 常见的作用范围包括:

  • compile:默认值,表示该依赖项在编译、测试和运行时都需要。
  • provided:表示该依赖项在编译和测试时需要,但在运行时由容器或其他系统提供。
  • runtime:表示该依赖项在运行时需要,但在编译时不需要。
  • test:表示该依赖项仅在测试时需要,不会被打包到最终的发布物中。
  • system:表示该依赖项需要从本地文件系统中获取,而不是从远程仓库下载。

jar搜索地址: https://mvnrepository.com/artifact/org.springframework(需验证)

详细说明: https://www.runoob.com/maven/maven-pom.html(菜鸟教程)

设置统一版本号

<!-- 设置版本号 -->
<properties><srping.version>4.0.2.RELEASE</srping.version><mybatis.version>3.2.8</mybatis.version><slf4j.version>1.7.12</slf4j.version><log4j.version>1.2.17</log4j.version>
</properties><!-- 引用版本号 -->
<version>${srping.version}</version>

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3:使用插件递归组件

vue3:使用插件递归组件 首先安装插件 npm i unplugin-vue-define-optionsvite.config.ts 配置插件 // vite.config.ts// 引入 unplugin-vue-define-options import DefineOptions from "unplugin-vue-define-options"; export default defineConfig({// 注册插件 De…

开源TTS语音克隆神器GPT-SoVITS_V2版本地整合包部署与远程使用生成音频

文章目录 前言1.GPT-SoVITS V2下载2.本地运行GPT-SoVITS V23.简单使用演示4.安装内网穿透工具4.1 创建远程连接公网地址 5. 固定远程访问公网地址 前言 本文主要介绍如何在Windows系统电脑使用整合包一键部署开源TTS语音克隆神器GPT-SoVITS&#xff0c;并结合cpolar内网穿透工…

Keil+VSCode优化开发体验

目录 一、引言 二、详细步骤 1、编译器准备 2、安装相应插件 2.1 安装C/C插件 2.2 安装Keil相关插件 3、添加keil环境变量 4、加载keil工程文件 5、VSCode中成功添加工程文件后可能出现的问题 5.1 编码不一致问题 6、在VSCode中进行编译工程以及烧录程序 7、效果展示…

Llama模型文件介绍

文章目录 概要文件组成 概要 在使用 LLaMA&#xff08;Large Language Model Meta AI&#xff09;权重时&#xff0c;通常会涉及到与模型权重存储和加载相关的文件。这些文件通常是以二进制格式存储的&#xff0c;具有特定的结构来支持高效的模型操作。以下以Llama-7B为例&…

Spring Web入门练习

加法计算器 约定前后端交互接⼝ 约定 "前后端交互接⼝" 是进⾏ Web 开发中的关键环节. 接⼝⼜叫 API&#xff08;Application Programming Interface), 我们⼀般讲到接⼝或者 API&#xff0c;指的都是同⼀个东西. 是指应⽤程序对外提供的服务的描述, ⽤于交换信息…

Easyexcel(5-自定义列宽)

相关文章链接 Easyexcel&#xff08;1-注解使用&#xff09;Easyexcel&#xff08;2-文件读取&#xff09;Easyexcel&#xff08;3-文件导出&#xff09;Easyexcel&#xff08;4-模板文件&#xff09;Easyexcel&#xff08;5-自定义列宽&#xff09; 注解 ColumnWidth Data…

FIFO和LRU算法实现操作系统中主存管理

FIFO&#xff0c;用数组实现 1和2都是使用nextReplace实现新页面位置的更新 1、不精确时间&#xff1a;用ctime输出运行时间都是0.00秒 #include <iostream> #include <iomanip> #include<ctime>//用于计算时间 using namespace std;// 页访问顺序 int pa…

Unity3d场景童话梦幻卡通Q版城镇建筑植物山石3D模型游戏美术素材

注明&#xff1a;网络素材&#xff0c;仅供学习使用&#xff01; https://download.csdn.net/download/elineSea/90017291

batchnorm与layernorn的区别

1 原理 简单总结&#xff1a; batchnorn 和layernorm是在不同维度上对特征进行归一化处理。 batchnorm在batch这一维度上&#xff0c; 对一个batch内部所有样本&#xff0c; 在同一个特征通道上进行归一化。 举个例子&#xff0c; 假设输入的特征图尺寸为16x224x224x256&…

SpringAOP模拟实现

文章目录 1_底层切点、通知、切面2_切点匹配3_从 Aspect 到 Advisor1_代理创建器2_代理创建时机3_Before 对应的低级通知 4_静态通知调用1_通知调用过程2_模拟 MethodInvocation 5_动态通知调用 1_底层切点、通知、切面 注意点&#xff1a; 底层的切点实现底层的通知实现底层的…

标准驱动开发(Linux2.6(cdev) 的开发)

Linux2.6&#xff08;cdev&#xff09; 的开发 目录 Linux2.6&#xff08;cdev&#xff09; 的开发 回顾 Linux2.6&#xff08;cdev&#xff09; 的开发 了解一下 Linux2.6 开发框架 学习 Linux2.6 的相关接口 1、申请设备号&#xff08;alloc_chrdev_region&#xff09…

硬件知识 cadence16.6 原理图输出为pdf 网络名下划线偏移 (ORCAD)

1. cadence原理图输出为PDF网络名下划线偏移 生这种情况的原因 1. 设计的原理图图纸大小比正常的 A4图纸大。 2. 打印为PDF 的时候&#xff0c;打印机的设置有问题。 2.cadence原理图输出为 PDF网络名下划线偏移的情况 可以看到上图&#xff0c;网络名往上漂移。 3. 解决办法 …

HarmonyOs DevEco Studio小技巧31--卡片的生命周期与卡片的开发

Form Kit简介 Form Kit&#xff08;卡片开发服务&#xff09;提供一种界面展示形式&#xff0c;可以将应用的重要信息或操作前置到服务卡片&#xff08;以下简称“卡片”&#xff09;&#xff0c;以达到服务直达、减少跳转层级的体验效果。卡片常用于嵌入到其他应用&#xff0…

SSRF漏洞利用

2.漏洞利用 2.1 SSRF中URL的伪协议 file:// 从⽂件系统中获取⽂件内容&#xff0c;如&#xff0c;file:///etc/passwd dict:// 字典服务器协议&#xff0c;访问字典资源&#xff0c;如dict://ip:6379/info sftp:// ssh⽂件传输协议或安全⽂件传输协议 ldap:// 轻量级⽬录访问…

nacos镜像启动时候报Public Key Retrieval is not allowed

在nacos的配置文件里加上一句allowPublicKeyRetrievaltrue

【pytorch-04】:线性回归案例(手动构建)

文章目录 1 构建数据集2 构建假设函数3 损失函数4 优化方法5 训练函数6.总结 1 构建数据集 为什么构建数据加载器&#xff1f; 在进行训练的时候都是采用的不是全部的数据&#xff0c;而是采用一个batch_size的数据进行训练&#xff0c;每次向模型当中送入batch_size数据&#…

实验室管理效率提升:Spring Boot技术的力量

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

STM32H7开发笔记(2)——H7外设之多路定时器中断

STM32H7开发笔记&#xff08;2&#xff09;——H7外设之多路定时器中断 文章目录 STM32H7开发笔记&#xff08;2&#xff09;——H7外设之多路定时器中断0.引言1.CubeMX配置2.软件编写 0.引言 本文PC端采用Win11STM32CubeMX4.1.0.0Keil5.24.2的配置&#xff0c;硬件使用STM32H…

springboot基于微信小程序的旧衣回收系统的设计与实现

摘 要 微信小程序的旧衣回收系统是一种专为环保生活设计的应用软件。这款小程序的主要功能包括&#xff1a;系统首页、个人中心、用户管理、回收人员管理、旧衣服分类管理、旧衣信息管理、回收预约管理、回收派单管理、回收订单管理、积分商品管理、积分兑换管理、管理员管理、…

路由缓存后跳转到新路由时,上一路由中的tip信息框不销毁问题解决

上一路由tip信息框不销毁问题解决 路由缓存篇问题描述及截图解决思路关键代码 路由缓存篇 传送门 问题描述及截图 路由缓存后跳转新路由时&#xff0c;上一个路由的tip信息框没销毁。 解决思路 在全局路由守卫中获取DOM元素&#xff0c;通过css去控制 关键代码 修改文…