热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Maven初识

ApacheMaven是一个软件项目管理和综合工具。(一)Maven介绍ApacheMaven是一个软件项目管理的综合工具。基于项目对象模型

Apache Maven是一个软件项目管理和综合工具。


(一)Maven 介绍

Apache Maven 是一个软件项目管理的综合工具。基于项目对象模型(POM)的概念,Maven 可以从一个中心资料片管理项目构建,报告和文件。本章将和你一起学习 Maven 的基本使用。

官方网站:http://maven.apache.org/


1、Maven 介绍

Maven 是一个项目管理和综合工具。 Maven 提供了开发人员构建一个完整的生命周期框架。 开发团队可以自动完成项目的基础工具建设, Maven 使用标准的目录结构和默认构建生命周期。在多个开发团队环境时, Maven 可以设置按标准在非常短的时间里完成配置工作。 由于大部分项目的设置都很简单, 并且可重复使用, Maven 让开发人员的工作更轻松, 同时创建报表, 检查, 构建和测试自动化设置。

Maven 提供了开发人员的方式来管理:


  • Builds
  • Documentation
  • Reporting
  • Dependencies
  • SCM(Software Configuration Management)
  • Releases
  • Distribution
  • mailing list

概括地说, Maven 简化和标准化项目建设过程。 处理编译, 分配, 文档, 团队协作和其他任务的无缝连接。 Maven 增加可重用性并负责建立相关的任务。


2、为什么学习Maven

不学习 Maven 不能做 Java 开发么? 当然不是,但是随着你 Java 开发越用越熟悉,涉及到第三方包也会越来越多,比如 web开发,自动化测试,这里面会用到大量的第三方库,不同库之间的依赖关系,如何快速有效果的管理这些库;以及在多人开发的团队中,如何有效的保证每个开发人员所使用的第三方库的一致性。这个时间 Maven 就起来了非常重要的作用。


(二)Maven 安装


1、准备工作

JDK : Java 开发程序所使用的环境。
IntelliJ IDEA : Java 开发程序所使用的 IDE。

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


2、环境配置

将 Maven 下载到本地解压, 这里以下载当前最新版本(apache-maven-3.5.2-bin.zip)为例, 解压到得到 apache-maven-3.5.2 目录。
下面设置环境变量:

“此电脑” 右键菜单—>属性—>高级—>环境变量—>系统变量—>新建..

变量名: MAVEN_HOME
变量值: D:\java\apache-maven-3.5.0

找到 path 变量名—>“编辑” 添加:

变量名: PATH
变量值: %MAVEN_HOME%\bin;

验证 Maven 环境是否配置成功


(五) IntelliJ-IDEA 创建 Maven 项目

IntelliJ IDEA 默认集成的就有 Maven 插件,所以,我们也可以直接使用它来创建 Maven 项目。


1、修改Maven 配置

首先, 打开 IntelliJ IDEA 开发工具, 菜单栏: “File” —>“Settings…” , 搜索“Maven” 选项, 如下图。

设置参数:


  • Maven home directory: 设置本地安装的 Maven 目录。 如“D:/java/apache-maven-3.5.0”。
  • User settings file: 选择 Maven 目录下的配置文件。 如“D:\java\apache-maven-3.5.0\conf\settings.xml” ,需要勾选“Override” 选项才能设置。
  • Locla repository: 设置本地仓库地址。 上一个选项设置好后, 该选项自动设置。

注: 这里也可以不用设置,直接使用 IntelliJ IDEA 的默认配置。


2、创建Maven 项目

接下来在 IntelliJ IDEA 中创建 Maven 项目。 菜单栏: “File” —>“New” —>“Project…” , 打开创建 Maven 。

在左侧项目类型中选择“Maven” , 然后点击“Next” 。

GoupId: 指定项目或公司组名。

ArifactId: 指定项目名称。

然后, 继续点击“Next” 。

Project name: 设置项目名称。
Project Iocation: 设置项目的在本地磁盘的位置。

最后, 点击“Finish” 完成 Maven 项目创建。


(六) pom.xml 配置文件

用 Maven 来管理 Java 项目的第三方库,最主要是通过 pom.xml 文件,这一小节将解释该文件的使用。


1、pom.xml 文件

以 (四)通过 mvn 命令创建 Maven 项目 创建的项目为例。打开项目根目录下的 pom.xml 文件。

4.0.0com.myapp.promyappjar1.0-SNAPSHOTmyapphttp://maven.apache.orgjunitjunit3.8.1test

* project:pom.xml文件中的顶层元素; 

* modelVersion:指明POM使用的对象模型的版本。这个值很少改动。

* groupId:指明创建项目的组织或者小组的唯一标识。GroupId是项目的关键标识,典型的,此标识以组织的完全限定名来定义。比如,org.apache.maven.plugins是所有Maven插件项目指定的groupId。 

* artifactId:指明此项目产生的主要产品的基本名称。项目的主要产品通常为一个JAR文件。第二,象源代码包通常使用artifactId作为最后名称的一部分。典型的产品名称使用这个格式:  - . (比如:myapp-1.0.jar)。 

* version:项目产品的版本号。Maven帮助你管理版本,可以经常看到SNAPSHOT这个版本,表明项目处于开发阶段。 

* name:项目的显示名称,通常用于maven产生的文档中。 

* url:指定项目站点,通常用于maven产生的文档中。 

* description:描述此项目,通常用于maven产生的文档中。

2、管理第三方库

对于一个第三方库的添加,下面的几个参数是我们需要关注的。

junit
junit
3.8.1
test

,它主要管理依赖的部署。目前可以使用5个值: 


  • compile,缺省值,适用于所有阶段,会随着项目一起发布。 
  • provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 
  • runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。 
  • test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 
  • system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

通过查看pom.xml中Junit的配置,显然版本有些旧了,我们去下载最新的Junit4,但我们又不知道Maven中的具体的版本怎么办呢?我们可以到 Maven 的中央仓库去查询。
Maven仓库:http://mavenrepository.com/

通过该网站查询“Junit”, 找到 Junit4 最新版本的配置。

修改 pom.xml 中的 Junit4 的配置。

junit
junit
4.12
test

或者通过 Maven 命令(插件)更新项目的第三方库。

myapp > mvn clean
myapp > mvn idea:idea

关于 Maven 插件列表参考: http://maven.apache.org/plugins/index.html



推荐阅读
  • ImusingthelatestJDKandeverywherefromprojectcreationtonoweverythingissettoJava8orS ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • JDK IDEA的安装卸载基本使用
    一、JDK下载地址官网https:www.oracle.comjavatechnologiesjavase-downloads.html没有账号可以使用:https:blog ... [详细]
  • 在MacOS上,使用Intellij2019.3滚动时遇到令人讨厌的延迟。我正在使用MacOSsmoothscrol ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • 本文介绍了Windows Vista操作系统中的用户账户保护功能,该功能是为了增强系统的安全性而设计的。通过对Vista测试版的体验,可以看到系统在安全性方面的进步。该功能的引入,为用户的账户安全提供了更好的保障。 ... [详细]
  • Summarize function is doing alignment without timezone ?
    Hi.Imtryingtogetsummarizefrom00:00otfirstdayofthismonthametric, ... [详细]
  • Android NDK开发的一点尝试
    写在前面笔者是一个“原始”的C++开发者,对Java编程虽说不上抵触但也没有C++那么顺手。而且,作为一个游戏引擎,不管是在什么地方,效率总是第一位的,尤其是在移动平台这样资源吃紧 ... [详细]
  • tomcat找不到java404_我哪里配置错了造成tomcat输出404?
    我依据《架构探险从零开始写javaweb框架》里的案列做。IntelliJ-IDEA2016.3.2Tomcat7这个是404截图pom.xmlxmlns:xsihttp:www ... [详细]
author-avatar
手机用户2502895475
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有