当前位置: 首页 > news >正文

【maven-4】IDEA 配置本地 Maven 及如何使用 Maven 创建 Java 工程

IntelliJ IDEA(以下简称 IDEA)是一款功能强大的集成开发环境,广泛应用于 Java 开发。下面将详细介绍如何在 IDEA 中配置本地 Maven,并创建一个 Maven Java 工程,快速上手并高效使用 Maven 进行 Java 开发。

1. Maven 简介

Maven 是一个基于项目对象模型(POM)的项目管理工具,它可以帮助开发者自动化构建、依赖管理和文档生成。Maven 使用标准的目录结构和配置文件,使得项目的构建和管理更加规范和高效。

2. IDEA 配置本地 Maven

2.1 安装 Maven

首先,确保你已经在本地安装了 Maven。如果尚未安装,请参考以下博客:

windows系统上如何进行maven安装和配置

2.2 配置 IDEA 使用本地 Maven

  1. 打开 IDEA: 启动 IntelliJ IDEA。
  2. 进入设置: 点击菜单栏的 File -> Settings(或使用快捷键 Ctrl + Alt + S)。
  3. 配置 Maven: 在设置窗口中,导航到 Build, Execution, Deployment -> Build Tools -> Maven
  4. 设置 Maven 路径:Maven home path 中选择本地 Maven 的安装路径(例如 D:/software/maven/apache-maven-3.9.9)。
  5. 设置用户设置文件:User settings file 中选择 Maven 的 settings.xml 文件路径(例如 D:\software\maven\apache-maven-3.9.9\conf\settings.xml)。
  6. 应用设置: 点击 ApplyOK 保存设置。

在这里插入图片描述

3. 创建 Maven Java 工程

3.1 创建新项目

  1. 打开 IDEA: 启动 IntelliJ IDEA。

  2. 创建新项目: 点击 File -> New -> Project
    在这里插入图片描述

  3. 选择 Maven 项目: 在弹出的窗口中,选择 Maven,然后点击 Next
    在这里插入图片描述

  4. 选择项目模板(可选): 可以选择 maven-archetype-quickstart 模板,它将生成一个简单的 Java 项目结构。
    在这里插入图片描述

  5. 选择项目目录并配置项目信息: 指定项目名称和路径,同时填写项目的坐标信息,然后点击 Next
    在这里插入图片描述

    • GroupId:项目的组 ID,通常使用公司域名的反写(例如 com.allen)。
    • ArtifactId:项目的唯一标识符(例如 my-app)。
    • Version:项目的版本号(例如 1.0-SNAPSHOT)。

3.2 项目结构

IDEA 将自动生成 Maven 项目的标准目录结构:

my-app
├── pom.xml
└── src├── main│   └── java│       └── com│           └── allen│               └── App.java└── test└── java└── com└── allen└── AppTest.java
  • pom.xml:Maven 项目的配置文件,包含项目的依赖、插件等信息。
  • src/main/java:存放项目源代码的目录。
  • src/test/java:存放测试代码的目录。

3.3 配置 pom.xml

pom.xml 是 Maven 项目的核心配置文件,你可以在其中添加项目的依赖、插件等信息。

<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.allen</groupId><artifactId>my-app</artifactId><version>1.0-SNAPSHOT</version><dependencies><!-- 添加项目依赖 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies><build><plugins><!-- 添加构建插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build>
</project>

运行 HTML

3.4 构建和运行项目

  1. 构建项目: 在 IDEA 的右侧工具栏中,点击 Maven 工具窗口,展开项目,双击 Lifecycle 下的 cleanpackage,Maven 将自动下载依赖并构建项目。
  2. 运行项目: 右键点击 src/main/java 目录下的 App.java 文件,选择 Run 'App.main()',IDEA 将运行项目并输出结果。

4. 常见问题与解决方案

4.1 依赖下载失败

  • 解决方案: 检查 settings.xml 文件中的镜像配置,确保使用国内的镜像仓库(如阿里云 Maven 镜像)。

4.2 构建失败

  • 解决方案: 检查 pom.xml 文件中的配置,确保依赖和插件的版本正确。

4.3 运行时找不到主类

  • 解决方案: 检查 pom.xml 文件中的 artifactIdversion,确保与项目目录结构一致。

5. 总结

通过上面的介绍,你已经应该已经掌握了在 IDEA 中配置本地 Maven 并创建 Maven Java 工程的基本方法。Maven 是一个功能强大的项目管理工具,熟练掌握 Maven 的使用可以极大地提高 Java 项目的开发效率。

相关文章:

【maven-4】IDEA 配置本地 Maven 及如何使用 Maven 创建 Java 工程

IntelliJ IDEA&#xff08;以下简称 IDEA&#xff09;是一款功能强大的集成开发环境&#xff0c;广泛应用于 Java 开发。下面将详细介绍如何在 IDEA 中配置本地 Maven&#xff0c;并创建一个 Maven Java 工程&#xff0c;快速上手并高效使用 Maven 进行 Java 开发。 1. Maven …...

种花问题算法

假设有一个很长的花坛&#xff0c;一部分地块种植了花&#xff0c;另一部分却没有。可是&#xff0c;花不能种植在相邻的地块上&#xff0c;它们会争夺水源&#xff0c;两者都会死去。 给你一个整数数组 flowerbed 表示花坛&#xff0c;由若干 0 和 1 组成&#xff0c;其中 0 …...

对于大规模的淘宝API接口数据,有什么高效的处理方法?

1.数据分批处理 原理&#xff1a;当处理大规模数据时&#xff0c;一次性将所有数据加载到内存中可能会导致内存溢出。将数据分成较小的批次进行处理可以有效避免这个问题。示例代码&#xff1a;假设通过淘宝 API 获取到了一个包含大量商品详情的 JSON 数据列表&#xff0c;每个…...

openharmony 使用uvc库获取摄像头数据使用nativewindow显示

界面代码&#xff1a; XComponent({ id: xcomponentId, type: texture, libraryname: entry }).width(800).height(500) Natvie代码&#xff1a; 1、头文件 //NativeWindow #include <ace/xcomponent/native_interface_xcomponent.h> #include <cstdint> #incl…...

SQL Server 实战 - 多种连接

目录 背景 一、多种连接 1. 复合连接条件 2. 跨数据库连接 3. 隐连接 4. 自连接 5. 多表外连接 6. UNION ALL 二、一个对比例子 背景 本专栏文章以 SAP 实施顾问在实施项目中需要掌握的 sql 语句为偏向进行选题&#xff1a; 用例&#xff1a;SAP B1 的数据库工具&am…...

【手术显微镜】市场高度集中,由于高端手术显微镜的制造技术主要掌握于欧美企业

摘要 HengCe (恒策咨询&#xff09;是全球知名的大型咨询机构&#xff0c;长期专注于各行业细分市场的调研。行业层面&#xff0c;重点关注可能存在“卡脖子”的高科技细分领域。企业层面&#xff0c;重点关注在国际和国内市场在规模和技术等层面具有代表性的企业&#xff0c;…...

IDEA 2024 配置Maven

Step 1:确定下载Apache Maven版本 在IDEA 2024中&#xff0c;随便新建一个Maven项目&#xff1b; 在File下拉菜单栏中&#xff0c;找到Setings&#xff1b; 在Build&#xff0c;Execution&#xff0c;Deployment中找到Maven 确定下载的Apache Maven版本应略低于或等于IDEA绑…...

Admin.NET框架使用宝塔面板部署步骤

文章目录 Admin.NET框架使用宝塔面板部署步骤&#x1f381;框架介绍部署步骤1.Centos7 部署宝塔面板2.部署Admin.NET后端3.部署前端Web4.访问前端页面 Admin.NET框架使用宝塔面板部署步骤 &#x1f381;框架介绍 Admin.NET 是基于 .NET6 (Furion/SqlSugar) 实现的通用权限开发…...

Flutter中的Future和Stream

在 Flutter 中&#xff0c;Future 和 Stream 都是用于处理异步操作的类&#xff0c;它们都基于 Dart 的异步编程模型&#xff0c;但是它们的使用场景和工作方式有所不同。以下是它们的区别以及各自适用的场景。 目录 一、Future1、基本使用2、异常处理1. catchError2. onError…...

107.【C语言】数据结构之二叉树求总节点和第K层节点的个数

目录 1.求二叉树总的节点的个数 1.容易想到的方法 代码 缺陷 思考:能否在TreeSize函数内定义静态变量解决size的问题呢? 其他写法 运行结果 2.最好的方法:分而治之 代码 运行结果 2.求二叉树第K层节点的个数 错误代码 运行结果 修正 运行结果 其他写法 1.求二…...

spring boot支持那些开发工具?

Spring Boot 支持多种开发工具&#xff0c;以帮助开发者更高效地进行应用开发。以下是小编给大家分享几种常用的开发工具及其特点&#xff1a; IntelliJ IDEA&#xff1a; IntelliJ IDEA 是一款非常流行的 Java IDE&#xff0c;它提供了对 Spring Boot 的全面支持&#xff0c;…...

Go-MediatR:Go语言中的中介者模式

在Go语言中&#xff0c;确实存在一个与C#中的MediatR类似的组件包&#xff0c;名为Go-MediatR。 Go-MediatR是一个受.NET中MediatR库启发的Go语言实现&#xff0c;它专注于通过中介者模式简化命令查询责任分离&#xff08;CQRS&#xff09;模式的处理和在事件驱动架构中的应用…...

5.11【机器学习】

先是对图像进行划分 划分完后&#xff0c; 顺序读取文件夹&#xff0c;在文件夹里顺序读取图片&#xff0c; 卷积层又称为滤波器&#xff0c;通道是说滤波器的个数&#xff0c;黑白通道数为1&#xff0c;RGB通道个数为3 在输入层&#xff0c;对于输入层而言&#xff0c;滤波…...

在 CentOS 上安装 Docker:构建容器化环境全攻略

一、引言 在当今的软件开发与运维领域&#xff0c;Docker 无疑是一颗璀璨的明星。它以轻量级虚拟化的卓越特性&#xff0c;为应用程序的打包、分发和管理开辟了崭新的高效便捷之路。无论是开发环境的快速搭建&#xff0c;还是生产环境的稳定部署&#xff0c;Docker 都展现出了…...

Python练习(2)

重复元素判定续。利用集合的无重复性来编写一个程序如果有一个元素出现了不止一次则返回true但不要改变原来列表的值&#xff1a; 一&#xff1a; def has_duplicates(lst): # 使用集合来存储已经见过的元素 seen set() for item in lst: if item in seen: # 如果元素已经在…...

如何实现一套键盘鼠标控制两台计算机(罗技Options+ Flow功能快速实现演示)

需求背景 之前我写过一篇文章如何实现一套键盘鼠标控制两台计算机&#xff08;Mouse Without Borders快速上手教程&#xff09;_一套键鼠控制两台电脑-CSDN博客 当我们在局域网内有两台计算机&#xff0c;想使用一套键鼠操控时&#xff0c;可以安装Mouse Without Borders软件…...

现代应用程序中基于 Cell 架构的安全防护之道

在飞速发展的软件开发领域&#xff0c;基于 Cell 的架构日益流行起来。其概念源自船舶舱壁的设计准则&#xff0c;即单独的水密舱室能允许故障孤立存在。通过将这个概念应用于软件&#xff0c;我们创建了一个架构&#xff0c;将应用程序划分为离散的、可管理的组件&#xff0c;…...

【导航查询】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…...

【基础分析】——Qt 信号和槽的机制 优点

QT信号和槽机制的优点包括&#xff1a; 1、类型安全&#xff1a; 信号和槽的签名必须是等同的&#xff0c;即信号的参数类型和参数个数必须与接收该信号的槽的参数类型和参数个数相同。 2、松散耦合&#xff1a; 信号和槽机制减弱了Qt对象的耦合度。激发信号的Qt对象无须知道…...

Vue3学习宝典

1.ref函数调用的方式生成响应式数据&#xff0c;可以传复杂和简单数据类型 <script setup> // reactive接收一个对象类型的数据 import { reactive } from vue;// ref用函数调用的方式生成响应式数据&#xff0c;可以传复杂和简单数据类型 import { ref } from vue // 简…...

基于AM62x核心板的微电网智能化改造:异构多核驱动与边缘计算实践

1. 项目概述&#xff1a;当嵌入式核心板遇上微电网最近在做一个挺有意思的项目&#xff0c;客户想把他们园区里那套老旧的微电网系统给“智能化”一下。原来的系统&#xff0c;说白了就是一堆继电器、PLC和工控机攒起来的&#xff0c;数据采集靠串口&#xff0c;控制逻辑写在梯…...

REFramework终极指南:如何构建企业级RE引擎游戏Mod开发框架

REFramework终极指南&#xff1a;如何构建企业级RE引擎游戏Mod开发框架 【免费下载链接】REFramework Mod loader, scripting platform, and VR support for all RE Engine games 项目地址: https://gitcode.com/GitHub_Trending/re/REFramework REFramework是一个专为R…...

UE5.6低延迟视频推流实战:从采集编码到RTMP传输全链路解析

1. 这不是“加个插件就能播”的事&#xff1a;UE5.6视频流推送的真实战场 很多人看到“UE5.6推送视频流”这个标题&#xff0c;第一反应是&#xff1a;“哦&#xff0c;用Media Player播放本地MP4&#xff1f;或者接个RTMP推流插件&#xff1f;”——我试过&#xff0c;也踩过坑…...

3Dmigoto:如何让破败的立体游戏重获新生?

3Dmigoto&#xff1a;如何让破败的立体游戏重获新生&#xff1f; 【免费下载链接】3Dmigoto DX11 modding wrapper to enable fixing broken stereoscopic effects. Warning: 3Dmigoto[.]com is a phishing site, not us. 项目地址: https://gitcode.com/gh_mirrors/3d/3Dmig…...

2026年AI智能算力服务研究报告:HBM、CPO与重构|附240+份报告PDF、数据、可视化模板汇总下载

全文链接&#xff1a;https://tecdat.cn/?p45901原文出处&#xff1a;拓端抖音号拓端tecdat封面&#xff1a;摘要本文聚焦2026年算力行业核心增长引擎&#xff0c;深度解析HBM高带宽内存与CPO共封装光学技术的产业化进程。报告回答三个核心问题&#xff1a;1&#xff09;未来3…...

DALL·E Mini技术解析:轻量文本生成图像模型的开源实践

1. 项目概述&#xff1a;这不是魔法&#xff0c;是开源图像生成的平民化拐点“Dalle Mini Is Amazing — And You Can Use It!” 这句话在2022年夏天刷爆技术社区和创意论坛时&#xff0c;我正蹲在一台老旧的MacBook Air上&#xff0c;用它生成第一张“一只穿着西装的柴犬站在火…...

告别静态分析!用R包SetMethods搞定面板数据QCA的三大一致性(附代码实战)

动态QCA实战指南&#xff1a;用R包SetMethods破解面板数据三大一致性难题 社会科学研究者常面临一个核心挑战&#xff1a;如何从随时间变化的面板数据中提取稳定可靠的因果模式&#xff1f;传统横截面QCA分析往往无法捕捉时间或个体效应&#xff0c;导致结论缺乏稳健性。本文将…...

保姆级教程:在Ubuntu 22.04上用Netplan搞定Bond+VLAN+Bridge混合网络(附H3C交换机配置)

企业级网络架构实战&#xff1a;Ubuntu 22.04下BondVLANBridge混合部署指南 在虚拟化环境和云计算基础设施中&#xff0c;网络架构的可靠性和灵活性至关重要。本文将深入探讨如何在Ubuntu 22.04系统上&#xff0c;通过Netplan配置工具实现Bond&#xff08;链路聚合&#xff09;…...

Linux中环境变量配置的步骤详解

简介我们大家在平时使用Linux的时候&#xff0c;经常需要配置一些环境变量&#xff0c;这时候一般都是网上随便搜搜就有人介绍经验的。不过问题在于他们的方法各不相同&#xff0c;有人说配置在/etc/profile里&#xff0c;有人说配置在/etc/environment&#xff0c;有人说配置在…...

《流浪地球2》最耐看的不是大场面!梁練偉解读3条隐藏暗线

第一次看《流浪地球2》的时候&#xff0c;梁練偉的注意力基本被太空电梯坠落、月球核爆这些大场面吸引了。二刷时刻意把注意力从视觉奇观上移开&#xff0c;才发现郭帆埋了不少比主线更值得细想的东西。第一条暗线&#xff1a;图恒宇的数字生命执念&#xff0c;到底算不算自私图…...