JAVA 项目管理工具Maven文档

Maven超详细讲解——基础篇 maven基础篇主要涉及maven的基本概念,安装下载以及应用实例,并对依赖管理,生命周期与插件做详细讲解 阅读详情

重要知识点介绍:

1、 什么是Maven

2、 Maven快速入门及eclipse的maven插件配置和使用 

3、详解pom.xml及如何添加依赖

4、 构建多模块项目 

5、 生命周期和常用插件(重难点)  

6、构建Profile和项目移植

7、搭建私服(了解)

 

什么是Maven

Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段中插件目标的逻辑。 

Maven核心思想: 约定优于配置 (来自敏捷开发思想 )

Maven工具管理项目的完整生命周期如下图:

Maven安装及eclipse插件配置

  1. 下载Maven: http://maven.apache.org/
  2. 了解Maven目录结构
  3. 配置Maven环境变量
  4. 查看Maven环境变量是否配置成功:
    执行命令:mvn -v
  5. 修改/config/setting.xml配置文件用以配置本地仓库
    打开setting.xml编辑如下:
  6. 常见Maven名词
    Project:任何您想build的事物,Maven都可以认为它们是工程。这些工程被定义为工程对象模型(POM,Poject Object Model)。一个工程可以依赖其它的工程;一个工程也可以由多个子工程构成。
    POM:POM(pom.xml)是Maven的核心文件,它是指示Maven如何工作的元数据文件。POM文件位于每个工程的根目录中。
    GroupId:groupId是一个工程的在全局中唯一的标识符,一般地,它就是工程名。groupId有利于使用一个完全的包名,将一个工程从其它有类似名称的工程里区别出来。
    Artifact:artifact  是工程将要产生或需要使用的文件,它可以是 jar 文件,源文件,二 进制文件, war 文件,甚至是 pom 文件。每个 artifact 都由 groupId 和   artifactId 组合的标识符唯一识别。 需要被使用 ( 依赖 ) 的 artifact 都要放在仓库 ( 见 Repository) 中,否则 Maven无法找到 ( 识别 ) 它们。
    Dependency :
     为了能够build或运行,一个典型的Java工程会依赖其它的包。在Maven中,这些被依赖的包就被称为dependency。dependency一般是其它工程的artifact。
    Plug-in:Maven是由插件组织的,它的每一个功能都是由插件提供的。插件提供goal(类似于Ant中的target),并根据在POM中找到的元数据去完成工作。主要的Maven插件要是由Java写成的,但它也支持用Beanshell或Ant脚本写成的插件。
    Repository:仓库。

  7. eclipse集成maven插件  
    个人推荐方式是百度搜索下载插件,简单粗暴!!!

    解压缩插件查看如下:


    先关闭eclipse,将对应文件夹下的内容放到eclipse的安装目录下的对应文件夹里,再重启eclispe

  8. 配置maven步骤:

        Ⅰ、勾选下图两个选项,方便查看所添加依赖jar的源码
         
        Ⅱ、设置本地maven安装目录
         
        Ⅲ、设置settings.xml位置

        切记:修改settings.xml 等同于修改本地仓库位置 , 一定要点击 update sessions 按钮!!!

        

使用eclipse新建Maven项目

File--->New--->Maven Project

Packaging类型选jar代表是普通Java工程,选war代表Web工程

点击Finish,查看新建的Java项目,如果是Web项目则需要在src/main/webapp下建立 WEB-INF/web.xml

            src/main/java 存放源码

            src/main/resources 存放配置文件

            src/test/java 存放测试源码

            src/test/resources 存放测试配置文件 

            src/main/webapp 存放web资源

通过m2eclipse插件执行常用maven命令

点击Maven build 弹出如下界面在Goals一栏配置相关命令,可自行百度!!!

详解pom.xml

  1. 通过坐标标识项目的唯一位置


    <groupId>:创建项目的组id
    <artifactld>:项目的唯一id,可视为项目名
    <version>:产品的版本号

    安装到仓库路径 

    repository\cn\leepon\maven\SimpleDemo\0.0.1-SNAPSHOT

    位置 : groupId/artifactId/version/war包、jar包

  2. 通过坐标,添加依赖

    方案一:对本地仓库建立索引,直接从本地仓库搜索
    点击eclipse的window选项------>Show View------>other,输入maven查看本地仓库

    对本地仓库重新建立索引

    打开pom.xml右击添加相关jar包依赖和插件



    方案二:通过网络搜索 http://mvnrepository.com/

构建多模块项目

一个多模块项目通过一个父POM引用一个或多个子模块来定义

新建三个maven项目,分别为simple-parent项目、simple-weather模块、simple-webapp模块

在simple-parent项目的pom里通过<modules></modules>集成子模块

Maven build父模块的时候,会自动build子模块,父模块的packaging必须为POM!!!

生命周期和常用插件介绍(重难点)

生命周期介绍:

  1. 三套生命周期(clean、default、site)相互独立
  2. 一套生命周期,生命周期阶段前后依赖
  3. maven命令指向生命周期阶段

Maven本身是一个框架,实际的任务都由插件完成 ,插件与生命周期阶段绑定,用户通过指定生命周期阶段就能够隐式的通过插件执行任务 ,打包类型(packaging)控制default生命周期与插件目标(plugin goal)的绑定。

 

Maven编译插件:

命令:mvn compile

Tomcat插件:

命令:mvn tomcat:run

动态打包插件:

命令: mvn package


构建profile实现多环境可移植

在开发过程中,我们的软件会面对不同的运行环境,比如开发环境、测试环境、生产环境,而我们的软件在不同的环境中,有的配置可能会不一样,比如数据源配置、日志文件配置、以及一些软件运行过程中的基本配置,那每次我们将软件部署到不同的环境时,都需要修改相应的配置文件,这样来回修改,是个很麻烦的事情。有没有一种方法能够让我们不用修改配置就能发布到不同的环境中呢?当然有,这就是接下来要做的事。

当然,这里的前提是使用maven做为构建工具。

使用maven来实现多环境的构建可移植性,需要借助maven提供的profile功能,通过不同的环境激活不同的profile来达到构建的可移植性。

一、配置profile

首先是profile配置,在pom.xml中添加如下profile的配置:

这里定义了三个环境,分别是development(开发环境)、test(测试环境)、production(生产环境),其中开发环境是默认激活的(activeByDefault为true),这样如果在不指定profile时默认是开发环境。

profiles.active表示被激活的profile的名称,deploy.url表示发布服务器的地址。

注明:host和port分别是发布服务器的主机地址和端口号。

二、配置文件

针对不同的环境,我们定义不同的配置文件,而这些配置文件都做为资源文件放到maven工程的resources目录下,即src/main/resources目录下,且各个环境的配置分别放到相应的目录下,而所有环境都公用的配置,直接放到src/main/resources目录下即可。

如下图所示:

 

如图所示,开发环境、测试环境、生产环境的配置文件分别放到src/main/resources目录下的development、test、production三个子目录中,而所有环境都公用的配置文件spring-applicationContext.xml直接放到src/main/resources目录下。

三、maven资源插件配置

在pom中的build节点下,配置资源文件的位置,如下所示:

 

四、配置tomcat-maven-plugin插件

 
其中发布的<url>节点就是在前面profile中配置的deploy.url属性,这样不同的环境就指定了不同的发布地址。<server>和<path>节点分别是发布服务器的用户配置的id以及应用的context名称。

五、构建或发布

通过在运行maven命令时指定不同的profile即可构建不同环境需要的war包或发布到不同的环境了 。如:

mvn clean package -Pproduction 即构建出生产环境需要的war包

mvn tomcat:redeploy -Ptest  即发布到测试环境

搭建私服

  1. 官网下载nexus:

    http://nexus.sonatype.org/

    下载war格式 : nexus-2.7.0-06.war (直接放入tomat运行)

    访问: http://localhost:8080/nexus-2.7.0-06/index.html#welcome 

    账户: admin  密码 admin123 
     

    登录后可在左边菜单栏配置

  2. 配置代理服务器 
    在Administration下的Server里配置

     
  3. 配置repository 
    在View/Repositories下的Resposities里进行配置

    nexus里可以配置3种类型的仓库,分别是proxy、hosted、group 

    proxy是远程仓库的代理。比如说在nexus中配置了一个central repository的proxy,当用户向这个proxy请求一个artifact,这个proxy就会先在本地查找,如果找不到的话,就会从远程仓库下载,然后返回给用户,相当于起到一个中转的作用。

    hosted是宿主仓库,用户可以把自己的一些构件,deploy到hosted中,也可以手工上传构件到hosted里。

    group是仓库组,在maven里没有这个概念,是nexus特有的。目的是将上述多个仓库聚合,对用户暴露统一的地址,这样用户就不需要在pom中配置多个地址,只要统一配置group的地址就可以了。


  4.  配置Central Repository的proxy 

    需要做的就是把Download Remote Indexes改为true,这样nexus才会从central repository下载索引,才能在nexus中使用artifact search的功能 。

  5. 配置hosted repository
    一般会配置3个hosted repository,分别是3rd party、Snapshots、Releases,分别用来保存第三方jar、项目组内部的快照、项目组内部的发布版 。

    这里并没有什么特别的配置,只是Deployment Policy这个选项,一般Snapshots会配置成允许,而Releases和3rd party会设置为禁止 !!!

  6. 配置group repository 
    group其实是一个虚拟的仓库,通过对实体仓库(proxy、hosted)进行聚合,对外暴露一个统一的地址。
    注意:放置左边的仓库才会被聚合!!!


  7. 配置用户密码    在Security–>Users中配置
  8. 在用户机器上的maven安装目录下找到config文件夹,配置settings.xml 
  9. 修改项目pom.xml

 


Java软件项目管理文档 Java软件项目管理文档 ● 测试分析报告大纲 ● 测试计划大纲 ● 概要设计说明书大纲 ● 工作流需求说明书 ● 技术支持记录 ● 开发进度月报大纲 ● 可行性研究报告大纲 ...... 立即下载

相关推荐

MEME-CHIP实战:5步搞定ChIP-seq数据中的motif发现与可视化

本文提供了使用MEME-CHIP工具进行ChIP-seq数据motif发现与可视化的完整实战指南。通过5个清晰步骤,从数据准备、环境搭建、命令行执行到结果解读与高级可视化,详细讲解了如何利用MEME-CHIP工作流高效完成从原始peak序列到发表级motif图的分析,并分享了关键的参数调优与避坑经验。

alice7model的博客 508

maven学习手册

jar包不统一,jar包不兼容导致项目问题工程升级维护过程操作繁琐maven作为一个构建工具,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务实现;它跨平台,对外提供了一致的操作接口,这一切足以使它成为优秀的、流行的构建工具。Maven不仅是构建工具,还是一个依赖管理工具和项目管理工具,它提供了中央仓库,能帮我自动下载构件。Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型POM(Project Object Model:项目对象模型) Maven是由java语言开发,它

客官不爱喝酒的博客 1192

深入解析数据通信中的码元速率与比特率:从基础到实战应用

本文深入解析了数据通信中的核心概念码元速率与比特率,通过生动的比喻和公式(比特率=波特率×log₂(M))揭示其本质关系。文章结合BPSK、QPSK、16QAM等调制技术,剖析了从4G/5G到LoRa等实战场景中如何权衡速率、距离与可靠性,并提供了软考真题解析与系统设计建议,帮助读者从理论到应用全面掌握数据速率优化。

weixin_29324877的博客 215

Maven 中文文档

Maven 官方文档要点翻译

一步一步往上爬 9996

逆向工程视角:MFI芯片通信协议在Linux环境下的行为分析

本文从逆向工程角度深入分析了MFI芯片在Linux环境下的通信协议行为,重点探讨了树莓派与MFI芯片通过I2C接口交互的技术细节。文章详细介绍了信号捕获、协议栈逆向、动态调试技巧以及安全机制分析,为开发者提供了在Linux驱动层面实现MFI认证的实用方法。

time3的博客 178

MySQL连接异常:Communications link failure 解决方案

困扰一晚上的问题终于解决了。

weixin_44704776的博客 1086

Maven 介绍,根据 Maven 官方文档整理

Maven官方文档是这样介绍的 Maven 的:Apache Maven 的本质是一个软件项目管理和理解工具。基于项目对象模型 (Project Object Model,POM) 的概念,Maven 可以从一条中心信息管理项目的构建、报告和文档。什么是 POM?每一个 Maven 工程都有一个pom.xml文件,位于根目录中,包含项目构建生命周期的详细信息。通过pom.xml文件,我们可以定义项目的坐标、项目依赖、项目信息、插件信息等等配置。项目构建:提供标准的、跨平台的自动化项目构建方式。

shiyunzhe2021的博客 882

使用 MATLAB/Simulink + Communications Toolbox + 5G Toolbox,构建一个2×2 MIMO-OFDM通信系统

本文通过Simulink+CommunicationsToolbox构建2×2 MIMO-OFDM通信系统,重点实现信道均衡滤波器(ZF与MMSE)的设计与应用。详细介绍了系统架构、建模步骤(包括信道估计、均衡器实现)和仿真场景设计,通过BER、星座图和EVM对比分析验证了MMSE均衡器在抑制噪声和信号恢复方面的优势。文章总结了MIMO均衡的核心原理与实践经验,并提出了扩展至大规模MIMO、深度学习均衡器等优化方向,为无线通信系统设计提供实用指导。

amy_mhd的博客 128

Maven 项目文档

Maven 项目文档

li514006030的博客 219

066、AR 应用中虚拟物体漂移抖动?IMU 融合 + 光流追踪的视觉里程计优化方案

AR应用中虚拟物体漂移抖动优化方案 摘要:针对AR应用中虚拟物体漂移抖动问题,提出一种IMU融合与光流追踪的视觉里程计优化方案。关键点包括:1) 采用IMU预积分技术处理高频噪声,通过中值积分计算帧间相对运动约束;2) 使用金字塔LK光流追踪像素运动,通过中值偏差法剔除异常值;3) 构建10帧滑动窗口的紧耦合优化框架,将IMU预积分约束和光流重投影约束联合优化。实验表明,该方法有效解决了时间戳未对齐导致的"跳舞箭头"现象,在手机端实现稳定30fps的AR定位精度,漂移误差降低至厘米级。特别提醒:IMU与视觉

ai技术增长的博客 161

使用C#实现Padim算法的训练和推理:智能缺陷检测的前沿技术

Padim (Patch-based Deep Image Model) 是一种用于无监督异常检测的深度学习算法。它通过提取图像中的局部特征(patch),并在这些特征上构建一个正常样本的分布模型来识别异常。无监督学习:不需要标注数据,适用于缺乏标签的情况。局部特征提取:通过卷积神经网络提取图像的局部特征(patch)。低秩近似:利用低秩近似构建正常样本的协方差矩阵,有效降低计算复杂度。鲁棒性强:能够处理多种类型的缺陷和噪声。

墨夶的博客 1015

【maven-2】windows系统上如何进行maven安装和配置

maven下载、安装、环境配置

weixin_39033358的博客 1367

ABAP 平台 SOAUTH2_CLIENT 全面实战:用一套配置,打通 OAuth 2.0 客户端的创建、联调与运维

本文是一份ABAP平台上配置OAuth 2.0客户端的全流程指南,重点介绍新界面SOAUTH2_CLIENT的使用方法。内容涵盖从概念解析到实操步骤,包括四种常见授权方式的选择、证书信任管理、Scope配置以及联调技巧。指南通过两个企业级案例(对接SAP BTP Cloud Integration和SAML 2.0身份联合)展示实际应用场景,并提供了配置清单和伪代码示例。特别强调新界面将客户端配置、令牌测试和校验功能整合的工程化优势,以及与旧事务码OA2C_CONFIG的主要差异。文中多处引用SAP官方文档

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 319

【项目管理和构建】——Maven简介(一)

在现实的企业中,以低成本、高效率、高质量的完成项目,不仅仅需要技术大牛,企业更加需要管理大牛,管理者只懂技术是远远不够的。当然,管理可以说有很多的方面,例如:对人员的管理,也有对项目的管理等等。如果你想成为一个优秀的管理者,你必须得会使用高大上的管理工具。       从这篇博文开始,我会给大家介绍更多的项目管理工具,经过点点滴滴的积累,不断的进步,最终成为管理大牛。 简介

AndyLizh的专栏 6144

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java中的Maven是什么?如何使用Maven进行项目管理

这是一个必要的步骤,因为它可以确保每次构建都是从头开始的,避免旧的构建信息对新的构建过程产生影响。这是构建过程中的一个必要步骤,因为它可以将项目的构建结果发布到本地Maven存储库中,以便其他项目可以使用它。除了这些常用的Maven命令外,Maven还提供了许多其他命令和插件,可以扩展和定制构建过程,满足特定的需求。这是构建过程中的最后一步,因为它可以将项目的构建结果发布到远程Maven存储库中,供其他项目使用。这是构建过程中的一个重要步骤,因为它可以确保源代码的正确性,并生成可执行的类文件。

2301_77769537的博客 1045

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Maven的配置与安装

什么是Maven呢?我们为什么要用Maven呢?Maven是一个Java项目管理和构建工具。它提供了一种标准的项目结构,能够自动下载依赖库,并且能够自动构建、测试和打包项目。使用Maven,开发者可以更方便地管理项目的依赖、构建过程和发布流程。

djssubddbj的博客 86

【项目管理和构建】—— Maven简介(一)

在现实的企业中,以低成本、高效率、高质量的完成项目,不仅仅需要技术大牛,企业更加需要管理大牛,管理者只懂技术是远远不够的。当然,管理可以说有很多的方面,例如:对人员的管理,也有对项目的管理等等。如果你想成为一个优秀的管理者,你必须得会使用高大上的管理工具。从这篇博文开始,我会给大家介绍更多的项目管理工具,经过点点滴滴的积累,不断的进步,最终成为管理大牛。简介我先看一下Apache官网的解释:Apac

小丑er的博客 489

java项目pom文件详解_Maven简介 pom.xml文件详解

先看一下Apache官网的解释:Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM),Maven can manage a project's build, reporting and documentati...

weixin_35600369的博客 1974

Maven 实践(一):Maven简介

maven 项目构建与管理

csolo的博客 1157

项目管理工具——Maven

Maven是用java语言编写的。Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)POM(Project Object Model):项目对象模型统一开发结构:提供标准的、统一的项目结构。

qq_31856061的博客 3199

Maven:简介

学习maven之前你要看这些(。・∀・)ノ

psh073014的博客 402
上一篇: 1.7三分钟读懂Saas、Paas、IaaS的区别
下一篇: MongoDB导入导出以及文档备份恢复
CollapseToDespair
博客等级 码龄11年 4粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值