程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • 依赖管理 - Maven

    • Maven 安装配置
    • Maven 仓库解析
    • Maven 项目构建
      • 1. 手动生成 Maven 项目
        • Maven 工程目录结构
        • pom.xml 文件示例
        • Maven 项目构建命令
      • 2. 使用构建命令生成项目
        • 创建工程
        • 创建 Web 工程
      • 3. 使用 IDEA 生成 Maven 项目
        • 配置 Maven
        • 新建 Maven 项目
        • 配置 Tomcat 插件(如果需要)
      • 4. 快速导入maven模块
      • 4. Maven 打包规则
        • 自定义打包名称
    • Maven 依赖管理
    • 手动安装Maven依赖
    • Maven 聚合
    • Maven 继承
    • Maven 属性
    • Maven 版本与测试
    • Maven 资源与多环境配置
    • Maven 生命周期与插件
    • 本地搭建Maven私服
    • Docker搭建Maven私服
    • Maven 上传中央仓库
    • Maven 依赖排除插件
  • 开发管理 - Git

  • Git小乌龟教程

  • 代码管理
  • 依赖管理 - Maven
scholar
2024-08-20
目录

Maven 项目构建

# Maven 项目构建

  • 1. 手动生成 Maven 项目
    • Maven 工程目录结构
    • pom.xml 文件示例
    • Maven 项目构建命令
  • 2. 使用构建命令生成项目
    • 创建工程
    • 创建 Web 工程
  • 3. 使用 IDEA 生成 Maven 项目
    • 配置 Maven
    • 新建 Maven 项目
    • 配置 Tomcat 插件(如果需要)
  • 4. 快速导入maven模块
  • 4. Maven 打包规则
    • 自定义打包名称

# 1. 手动生成 Maven 项目

# Maven 工程目录结构

Maven 项目的标准目录结构如下图所示:

Maven 工程目录结构

在 src 同层目录下创建 pom.xml 文件,这是 Maven 管理项目的核心文件。pom.xml 包含项目的配置信息、依赖声明和构建配置。

# 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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <!-- 组织标识符 -->
    <groupId>cn.knt</groupId>
    
    <!-- 项目标识符 -->
    <artifactId>project-java</artifactId>
    
    <!-- 版本号 -->
    <version>1.0</version>
    
    <!-- 打包类型 -->
    <packaging>jar</packaging>
    
    <!-- 项目依赖 -->
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>
</project>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# Maven 项目构建命令

Maven 构建命令以 mvn 开头,后面加上不同的参数来执行不同的功能,可以一次执行多个命令,使用空格分隔。例如:

mvn compile   # 编译项目
mvn clean     # 清理编译产生的内容
mvn test      # 执行测试
mvn package   # 打包项目
mvn install   # 安装到本地仓库
1
2
3
4
5

# 2. 使用构建命令生成项目

# 创建工程

进入到指定的目录下,使用以下命令生成一个简单的 Java 项目:

mvn archetype:generate \
    -DgroupId=cn.knt \
    -DartifactId=java-project \
    -DarchetypeArtifactId=maven-archetype-quickstart \
    -Dversion=0.0.1-SNAPSHOT \
    -DinteractiveMode=false
1
2
3
4
5
6

# 创建 Web 工程

使用以下命令生成一个 Web 工程:

mvn archetype:generate \
    -DgroupId=cn.knt \
    -DartifactId=web-project \
    -DarchetypeArtifactId=maven-archetype-webapp \
    -Dversion=0.0.1-SNAPSHOT \
    -DinteractiveMode=false
1
2
3
4
5
6

生成的 Web 工程目录结构如下图所示:

Maven Web 工程目录结构

# 3. 使用 IDEA 生成 Maven 项目

# 配置 Maven

在 IDEA 中,打开 Settings 配置 Maven 的根目录、settings.xml 目录以及本地仓库目录,如下图所示:

IDEA Maven 配置

# 新建 Maven 项目

  1. 在 IDEA 中创建新项目时,选择 Maven 项目类型:

    选择 Maven 项目

  2. 创建 Java 项目时,选择 archetype-quickstart 进行项目初始化:

    选择 archetype-quickstart

  3. 创建 Web 项目时,选择 archetype-webapp 进行项目初始化:

    选择 archetype-webapp

# 配置 Tomcat 插件(如果需要)

如果你的项目需要部署到 Tomcat 上,可以在 pom.xml 中添加 Tomcat 插件:

<build> 
    <plugins>
        <plugin> 
            <groupId>org.apache.tomcat.maven</groupId> 
            <artifactId>tomcat7-maven-plugin</artifactId> 				
            <version>2.1</version>
            <configuration>
                <port>8080</port> <!-- 端口号 -->
                <path>/</path> <!-- 项目路径 -->
            </configuration>
        </plugin> 
    </plugins>
</build>
1
2
3
4
5
6
7
8
9
10
11
12
13

# 4. 快速导入maven模块

在项目结构中找到我们的父模块,直接导入对应的Maven模块:

image-20240221074416184

如果你发现直接将现有的Maven模块复制到自己项目中并没有被自动识别为maven项目,可以按照以下步骤操作:

image-20240221074804448

1. 在IDEA中,选择File > New > Module from Existing Sources...。

image-20240221074836429

2. 在弹出的文件选择器中,浏览到你的Maven项目或模块的pom.xml文件,选择它,然后点击OK。

image-20240221074930788

3. IntelliJ IDEA会识别出这是一个Maven项目,并提示你通过Maven导入项目。按照向导完成导入过程。

# 4. Maven 打包规则

Maven 打包时生成的包名遵循以下默认命名规则:

artifactId-version.packaging
1
  • artifactId:项目在 pom.xml 文件中定义的 <artifactId> 元素的值,代表项目的基本标识。
  • version:项目版本号,对应 pom.xml 文件中的 <version> 元素的值。
  • packaging:打包类型,例如 jar、war 等,对应 pom.xml 文件中的 <packaging> 元素的值。如果未指定 <packaging>,Maven 默认使用 jar 类型。

示例

如果 pom.xml 文件包含以下配置:

<groupId>com.example</groupId>
<artifactId>my-application</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
1
2
3
4

那么生成的包名将会是:

my-application-1.0.0.jar
1

# 自定义打包名称

如果需要自定义打包后的名称,可以在 pom.xml 中使用 <build> 标签内的 <finalName> 元素:

<build>
    <finalName>custom-name</finalName>
</build>
1
2
3

这将会生成名为 custom-name.jar 的打包文件。

注意事项

自定义的 <finalName> 不会自动附加文件类型后缀(如 .jar 或 .war),如果需要可以手动指定。

编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08
Maven 仓库解析
Maven 依赖管理

← Maven 仓库解析 Maven 依赖管理→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式