<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Maven简明教程 on 重定向学院</title><link>https://itest2025.pages.dev/categories/maven%E7%AE%80%E6%98%8E%E6%95%99%E7%A8%8B/</link><description>Recent content in Maven简明教程 on 重定向学院</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Tue, 17 Jun 2025 17:29:15 +0800</lastBuildDate><atom:link href="https://itest2025.pages.dev/categories/maven%E7%AE%80%E6%98%8E%E6%95%99%E7%A8%8B/index.xml" rel="self" type="application/rss+xml"/><item><title>（一）Maven 介绍</title><link>https://itest2025.pages.dev/tutorials/41-001-%E4%B8%80maven-%E4%BB%8B%E7%BB%8D/</link><pubDate>Sat, 25 Nov 2017 12:55:11 +0800</pubDate><guid>https://itest2025.pages.dev/tutorials/41-001-%E4%B8%80maven-%E4%BB%8B%E7%BB%8D/</guid><description>&lt;p>Apache Maven 是一个软件项目管理的综合工具。基于项目对象模型（POM）的概念，Maven 可以从一个中心资料片管理项目构建，报告和文件。本章将和你一起学习 Maven 的基本使用。&lt;/p>
&lt;p>官方网站：http://maven.apache.org/&lt;/p>
&lt;h4 id="maven-介绍">Maven 介绍？&lt;/h4>
&lt;hr>
&lt;p>Maven 是一个项目管理和综合工具。 Maven 提供了开发人员构建一个完整的生命周期框架。 开发团队可以自动完成项目的基础工具建设， Maven 使用标准的目录结构和默认构建生命周期。在多个开发团队环境时， Maven 可以设置按标准在非常短的时间里完成配置工作。 由于大部分项目的设置都很简单， 并且可重复使用， Maven 让开发人员的工作更轻松， 同时创建报表， 检查， 构建和测试自动化设置。&lt;/p>
&lt;p>Maven 提供了开发人员的方式来管理：&lt;/p>
&lt;ul>
&lt;li>Builds&lt;/li>
&lt;li>Documentation&lt;/li>
&lt;li>Reporting&lt;/li>
&lt;li>Dependencies&lt;/li>
&lt;li>SCM（Software Configuration Management）&lt;/li>
&lt;li>Releases&lt;/li>
&lt;li>Distribution&lt;/li>
&lt;li>mailing list&lt;/li>
&lt;/ul>
&lt;p>概括地说， Maven 简化和标准化项目建设过程。 处理编译， 分配， 文档， 团队协作和其他任务的无缝连接。 Maven 增加可重用性并负责建立相关的任务。&lt;/p>
&lt;h4 id="为什么学习-maven">为什么学习 Maven？&lt;/h4>
&lt;hr>
&lt;p>不学习 Maven 不能做 Java 开发么？ 当然不是，但是随着你 Java 开发越用越熟悉，涉及到第三方包也会越来越多，比如 web开发，自动化测试，这里面会用到大量的第三方库，不同库之间的依赖关系，如何快速有效果的管理这些库；以及在多人开发的团队中，如何有效的保证每个开发人员所使用的第三方库的一致性。这个时间 Maven 就起来了非常重要的作用。&lt;/p>
&lt;p>原始封面&lt;/p>
&lt;p>&lt;img
 class="lazyload"
 src="https://itest2025.pages.dev/svg/loading.min.svg"
 data-src="https://images.unsplash.com/photo-1434030216411-0b793f4b4173?w=300"
 data-srcset="https://images.unsplash.com/photo-1434030216411-0b793f4b4173?w=300, https://images.unsplash.com/photo-1434030216411-0b793f4b4173?w=300 1.5x, https://images.unsplash.com/photo-1434030216411-0b793f4b4173?w=300 2x"
 data-sizes="auto"
 alt="https://images.unsplash.com/photo-1434030216411-0b793f4b4173?w=300"
 title="课程图片" />&lt;/p></description></item><item><title>（二）Maven 安装</title><link>https://itest2025.pages.dev/tutorials/41-002-%E4%BA%8Cmaven-%E5%AE%89%E8%A3%85/</link><pubDate>Sat, 25 Nov 2017 12:50:11 +0800</pubDate><guid>https://itest2025.pages.dev/tutorials/41-002-%E4%BA%8Cmaven-%E5%AE%89%E8%A3%85/</guid><description>&lt;h4 id="准备工作">准备工作&lt;/h4>
&lt;hr>
&lt;p>&lt;a href="https://itest2025.pages.dev/selenium_java/install-java/" rel="">JDK&lt;/a> ： Java 开发程序所使用的环境。&lt;/p>
&lt;p>&lt;a href="https://itest2025.pages.dev/idea/" rel="">IntelliJ IDEA&lt;/a> ： Java 开发程序所使用的 IDE。&lt;/p>
&lt;p>Maven ： 下载地址 &lt;a href="http://maven.apache.org/download.cgi" target="_blank" rel="noopener noreffer ">http://maven.apache.org/download.cgi&lt;/a>&lt;/p>
&lt;h4 id="环境配置">环境配置&lt;/h4>
&lt;hr>
&lt;p>将 Maven 下载到本地解压， 这里以下载当前最新版本（apache-maven-3.5.0-bin.zip）为例， 解压到得到 apache-maven-3.5.0 目录。&lt;/p>
&lt;p>&lt;strong>下面设置环境变量&lt;/strong>：&lt;/p>
&lt;p>“此电脑” 右键菜单&amp;mdash;&amp;gt;属性&amp;mdash;&amp;gt;高级&amp;mdash;&amp;gt;环境变量&amp;mdash;&amp;gt;系统变量&amp;mdash;&amp;gt;新建..&lt;/p>
&lt;blockquote>
&lt;p>变量名： MAVEN_HOME&lt;/p>&lt;/blockquote>
&lt;blockquote>
&lt;p>变量值： D:\java\apache-maven-3.5.0&lt;/p>&lt;/blockquote>
&lt;p>找到 path 变量名—&amp;gt;“编辑” 添加：&lt;/p>
&lt;blockquote>
&lt;p>变量名： PATH&lt;/p>&lt;/blockquote>
&lt;blockquote>
&lt;p>变量值： %MAVEN_HOME%\bin;&lt;/p>&lt;/blockquote>
&lt;p>验证 Maven 环境是否配置成功&lt;/p>
&lt;p>&lt;img
 class="lazyload"
 src="https://itest2025.pages.dev/svg/loading.min.svg"
 data-src="http://img.testclass.net/maven_version.png"
 data-srcset="http://img.testclass.net/maven_version.png, http://img.testclass.net/maven_version.png 1.5x, http://img.testclass.net/maven_version.png 2x"
 data-sizes="auto"
 alt="http://img.testclass.net/maven_version.png"
 title="http://img.testclass.net/maven_version.png" />&lt;/p>
&lt;p>原始封面&lt;/p>
&lt;p>&lt;img
 class="lazyload"
 src="https://itest2025.pages.dev/svg/loading.min.svg"
 data-src="https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=300"
 data-srcset="https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=300, https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=300 1.5x, https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=300 2x"
 data-sizes="auto"
 alt="https://images.unsplash.com/photo-1462826303086-329426d1aef5?w=300"
 title="课程图片" />&lt;/p></description></item><item><title>（三）Maven 设置仓库地址</title><link>https://itest2025.pages.dev/tutorials/41-003-%E4%B8%89maven-%E8%AE%BE%E7%BD%AE%E4%BB%93%E5%BA%93%E5%9C%B0%E5%9D%80/</link><pubDate>Sat, 25 Nov 2017 12:45:11 +0800</pubDate><guid>https://itest2025.pages.dev/tutorials/41-003-%E4%B8%89maven-%E8%AE%BE%E7%BD%AE%E4%BB%93%E5%BA%93%E5%9C%B0%E5%9D%80/</guid><description>&lt;h4 id="修改本地仓库地址">修改本地仓库地址&lt;/h4>
&lt;hr>
&lt;p>maven 用来管理我们的 Java 第三方库，我们需要设置仓库的本地地址来存放这此第三方库。&lt;/p>
&lt;p>打开 Maven 目录下的配置文件（&lt;strong>\apache-maven-3.5.0\conf\settings.xml&lt;/strong>) ， 找到 &lt;code>&amp;lt;localRepository&amp;gt; ..&amp;lt;/localRepository&amp;gt;&lt;/code> 标签。&lt;/p>
&lt;pre tabindex="0">&lt;code>&amp;lt;!-- localRepository
 | The path to the local repository maven will use to store artifacts.
 |
 | Default: ${user.home}/.m2/repository
--&amp;gt;
&amp;lt;localRepository&amp;gt;D:/Java/maven/repo&amp;lt;/localRepository&amp;gt;
&lt;/code>&lt;/pre>&lt;p>Maven 默认将本地仓库设置在 &lt;strong>${user.home}/.m2/repository&lt;/strong> 目录下，这里修改为 &lt;strong>D:/Java/maven/repo&lt;/strong> 路径。&lt;/p>
&lt;h4 id="设置中央仓库地址">设置中央仓库地址&lt;/h4>
&lt;hr>
&lt;p>中央仓库即当我们要用到 Java 的第三方库时应该去哪里下载。&lt;/p>
&lt;p>同样打开 Maven 目录下的配置文件（&lt;strong>\apache-maven-3.5.0\conf\settings.xml&lt;/strong>) ， 找到 &lt;code>&amp;lt;mirrors&amp;gt;..&amp;lt;/mirrors&amp;gt;&lt;/code> 标签。&lt;/p>
&lt;pre tabindex="0">&lt;code>&amp;lt;mirrors&amp;gt;
 &amp;lt;!-- mirror
 | Specifies a repository mirror site to use instead of a given repository. The repository that
 | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
 | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
 |
 &amp;lt;mirror&amp;gt;
 &amp;lt;id&amp;gt;mirrorId&amp;lt;/id&amp;gt;
 &amp;lt;mirrorOf&amp;gt;repositoryId&amp;lt;/mirrorOf&amp;gt;
 &amp;lt;name&amp;gt;Human Readable Name for this Mirror.&amp;lt;/name&amp;gt;
 &amp;lt;url&amp;gt;http://my.repository.com/repo/path&amp;lt;/url&amp;gt;
 &amp;lt;/mirror&amp;gt;
 --&amp;gt;
 &amp;lt;mirror&amp;gt;
 &amp;lt;id&amp;gt;alimaven&amp;lt;/id&amp;gt;
 &amp;lt;name&amp;gt;aliyun maven&amp;lt;/name&amp;gt;
 &amp;lt;url&amp;gt;http://maven.aliyun.com/nexus/content/groups/public/&amp;lt;/url&amp;gt;
 &amp;lt;!--&amp;lt;mirrorOf&amp;gt;central&amp;lt;/mirrorOf&amp;gt; --&amp;gt;
 &amp;lt;mirrorOf&amp;gt;*&amp;lt;/mirrorOf&amp;gt;
 &amp;lt;/mirror&amp;gt;
&amp;lt;/mirrors&amp;gt;
&lt;/code>&lt;/pre>&lt;p>这里将 Maven 的中央仓库地址修改为 aliyun ，国内访问速度会更快。&lt;/p></description></item><item><title>（四）通过 mvn 命令创建 Maven 项目</title><link>https://itest2025.pages.dev/tutorials/41-004-%E5%9B%9B%E9%80%9A%E8%BF%87-mvn-%E5%91%BD%E4%BB%A4%E5%88%9B%E5%BB%BA-maven-%E9%A1%B9%E7%9B%AE/</link><pubDate>Sat, 25 Nov 2017 12:40:11 +0800</pubDate><guid>https://itest2025.pages.dev/tutorials/41-004-%E5%9B%9B%E9%80%9A%E8%BF%87-mvn-%E5%91%BD%E4%BB%A4%E5%88%9B%E5%BB%BA-maven-%E9%A1%B9%E7%9B%AE/</guid><description>&lt;h4 id="通过-mvn-命令创建项目">通过 mvn 命令创建项目&lt;/h4>
&lt;hr>
&lt;p>Maven官方文档：&lt;a href="https://maven.apache.org/guides/getting-started/" target="_blank" rel="noopener noreffer ">Maven Getting Started Guide&lt;/a>&lt;/p>
&lt;p>通过 mvn 命令创建一个 Maven 项目。&lt;/p>
&lt;pre tabindex="0">&lt;code>mvn -B archetype:generate \
 -DarchetypeGroupId=org.apache.maven.archetypes \
 -DgroupId=com.mycompany.app \
 -DartifactId=my-app
&lt;/code>&lt;/pre>&lt;ul>
&lt;li>
&lt;p>-B ：该参数表示让Maven使用批处理模式构建项目，能够避免一些需要人工参与交互而造成的挂起状态。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>archetype:generate : 创建 Maven 项目的命令。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>DarchetypeGroupId ： 指定 Apache maven 组织名。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>DgroupId ： 指定项目或公司组名。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>DartifactId ：指定项目名。&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>例如：&lt;/p>
&lt;blockquote>
&lt;p>mvn -B archetype:generate -DgroupId=com.myapp.pro -DartifactId=myapp -DarchetypeArtifactId==maven-archetype-quickstart -DinteractiveMode=false&lt;/p>&lt;/blockquote>
&lt;p>将，该命令复制到 Windows 命令提示符（Linux 终端）下执行。&lt;/p>
&lt;p>&lt;img
 class="lazyload"
 src="https://itest2025.pages.dev/svg/loading.min.svg"
 data-src="http://img.testclass.net/maven_create_project.png"
 data-srcset="http://img.testclass.net/maven_create_project.png, http://img.testclass.net/maven_create_project.png 1.5x, http://img.testclass.net/maven_create_project.png 2x"
 data-sizes="auto"
 alt="http://img.testclass.net/maven_create_project.png"
 title="http://img.testclass.net/maven_create_project.png" />&lt;/p>
&lt;p>继续通过&lt;code>mvn idea:idea&lt;/code>命令生成 IntelliJ IDEA 项目工程。&lt;/p>
&lt;pre tabindex="0">&lt;code>&amp;gt; cd myapp\

..\myapp&amp;gt; mvn idea:idea
&lt;/code>&lt;/pre>&lt;p>然后，通过 &lt;a href="https://itest2025.pages.dev/idea/" rel="">IntelliJ-IDEA&lt;/a> 打开 &lt;strong>myapp&lt;/strong> 项目。&lt;/p></description></item><item><title>（五） IntelliJ-IDEA 创建 Maven 项目</title><link>https://itest2025.pages.dev/tutorials/41-005-%E4%BA%94-intellij-idea-%E5%88%9B%E5%BB%BA-maven-%E9%A1%B9%E7%9B%AE/</link><pubDate>Sat, 25 Nov 2017 12:35:11 +0800</pubDate><guid>https://itest2025.pages.dev/tutorials/41-005-%E4%BA%94-intellij-idea-%E5%88%9B%E5%BB%BA-maven-%E9%A1%B9%E7%9B%AE/</guid><description>&lt;p>IntelliJ IDEA 默认集成的就有 Maven 插件，所以，我们也可以直接使用它来创建 Maven 项目。&lt;/p>
&lt;h4 id="修改-maven-配置">修改 Maven 配置&lt;/h4>
&lt;hr>
&lt;p>首先， 打开 IntelliJ IDEA 开发工具， 菜单栏： &lt;strong>“File” &amp;mdash;&amp;gt;“Settings&amp;hellip;”&lt;/strong> ， 搜索“Maven” 选项， 如下图。&lt;/p>
&lt;p>&lt;img
 class="lazyload"
 src="https://itest2025.pages.dev/svg/loading.min.svg"
 data-src="http://img.testclass.net/maven_idea_setting.png"
 data-srcset="http://img.testclass.net/maven_idea_setting.png, http://img.testclass.net/maven_idea_setting.png 1.5x, http://img.testclass.net/maven_idea_setting.png 2x"
 data-sizes="auto"
 alt="http://img.testclass.net/maven_idea_setting.png"
 title="http://img.testclass.net/maven_idea_setting.png" />&lt;/p>
&lt;p>设置参数：&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Maven home directory： 设置本地安装的 Maven 目录。 如“&lt;strong>D:/java/apache-maven-3.5.0&lt;/strong>”。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>User settings file： 选择 Maven 目录下的配置文件。 如“&lt;strong>D:\java\apache-maven-3.5.0\conf\settings.xml&lt;/strong>” ，需要勾选“&lt;strong>Override&lt;/strong>” 选项才能设置。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Locla repository： 设置本地仓库地址。 上一个选项设置好后， 该选项自动设置。&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;font color="red"> &lt;strong>注：&lt;/strong> 这里也可以不用设置，直接使用 IntelliJ IDEA 的默认配置。&lt;/font>&lt;/p>
&lt;h4 id="创建-maven-项目">创建 Maven 项目&lt;/h4>
&lt;hr>
&lt;p>接下来在 IntelliJ IDEA 中创建 Maven 项目。 菜单栏： &lt;strong>“File” &amp;mdash;&amp;gt;“New” &amp;mdash;&amp;gt;“Project&amp;hellip;”&lt;/strong> ， 打开创建 Maven 。&lt;/p></description></item><item><title>（六） pom.xml 配置文件</title><link>https://itest2025.pages.dev/tutorials/41-006-%E5%85%AD-pomxml-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/</link><pubDate>Sat, 25 Nov 2017 12:30:11 +0800</pubDate><guid>https://itest2025.pages.dev/tutorials/41-006-%E5%85%AD-pomxml-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/</guid><description>&lt;p>用 Maven 来管理 Java 项目的第三方库，最主要是通过 &lt;strong>pom.xml&lt;/strong> 文件，这一小节将解释该文件的使用。&lt;/p>
&lt;h4 id="pomxml-文件">pom.xml 文件&lt;/h4>
&lt;hr>
&lt;p>以 &lt;a href="https://itest2025.pages.dev/maven/create_project/" rel="">（四）通过 mvn 命令创建 Maven 项目&lt;/a> 创建的项目为例。打开项目根目录下的 pom.xml 文件。&lt;/p>
&lt;pre tabindex="0">&lt;code>&amp;lt;project xmlns=&amp;#34;http://maven.apache.org/POM/4.0.0&amp;#34; xmlns:xsi=&amp;#34;http://www.w3.org/2001/XMLSchema-instance&amp;#34;
 xsi:schemaLocation=&amp;#34;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&amp;#34;&amp;gt;
 &amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;

 &amp;lt;groupId&amp;gt;com.myapp.pro&amp;lt;/groupId&amp;gt;
 &amp;lt;artifactId&amp;gt;myapp&amp;lt;/artifactId&amp;gt;
 &amp;lt;packaging&amp;gt;jar&amp;lt;/packaging&amp;gt;
 &amp;lt;version&amp;gt;1.0-SNAPSHOT&amp;lt;/version&amp;gt;

 &amp;lt;name&amp;gt;myapp&amp;lt;/name&amp;gt;
 &amp;lt;url&amp;gt;http://maven.apache.org&amp;lt;/url&amp;gt;

 &amp;lt;dependencies&amp;gt;
 &amp;lt;dependency&amp;gt;
 &amp;lt;groupId&amp;gt;junit&amp;lt;/groupId&amp;gt;
 &amp;lt;artifactId&amp;gt;junit&amp;lt;/artifactId&amp;gt;
 &amp;lt;version&amp;gt;3.8.1&amp;lt;/version&amp;gt;
 &amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;
 &amp;lt;/dependency&amp;gt;

 &amp;lt;/dependencies&amp;gt;

&amp;lt;/project&amp;gt;
&lt;/code>&lt;/pre>&lt;p>* project：pom.xml文件中的顶层元素； &lt;/p>
&lt;p>* modelVersion：指明POM使用的对象模型的版本。这个值很少改动。&lt;/p>
&lt;p>* groupId：指明创建项目的组织或者小组的唯一标识。GroupId是项目的关键标识，典型的，此标识以组织的完全限定名来定义。比如，org.apache.maven.plugins是所有Maven插件项目指定的groupId。 &lt;/p>
&lt;p>* artifactId：指明此项目产生的主要产品的基本名称。项目的主要产品通常为一个JAR文件。第二，象源代码包通常使用artifactId作为最后名称的一部分。典型的产品名称使用这个格式：
 &lt;artifactId>- &lt;version>. &lt;extension>(比如：myapp-1.0.jar)。 &lt;/p>
&lt;p>* version：项目产品的版本号。Maven帮助你管理版本，可以经常看到SNAPSHOT这个版本，表明项目处于开发阶段。 &lt;/p>
&lt;p>* name：项目的显示名称，通常用于maven产生的文档中。 &lt;/p>
&lt;p>* url：指定项目站点，通常用于maven产生的文档中。 &lt;/p>
&lt;p>* description：描述此项目，通常用于maven产生的文档中。&lt;/p>
&lt;h4 id="管理第三方库">管理第三方库&lt;/h4>
&lt;hr>
&lt;p>对于一个第三方库的添加，下面的几个参数是我们需要关注的。&lt;/p>
&lt;pre tabindex="0">&lt;code>&amp;lt;groupId&amp;gt;junit&amp;lt;/groupId&amp;gt;
&amp;lt;artifactId&amp;gt;junit&amp;lt;/artifactId&amp;gt;
&amp;lt;version&amp;gt;3.8.1&amp;lt;/version&amp;gt;
&amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;
&lt;/code>&lt;/pre>&lt;p>&lt;scope>&lt;/scope>，它主要管理依赖的部署。目前&lt;scope>可以使用5个值： &lt;/p>
&lt;ul>
&lt;li>compile，缺省值，适用于所有阶段，会随着项目一起发布。 &lt;/li>
&lt;li>provided，类似compile，期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 &lt;/li>
&lt;li>runtime，只在运行时使用，如JDBC驱动，适用运行和测试阶段。 &lt;/li>
&lt;li>test，只在测试时使用，用于编译和运行测试代码。不会随项目发布。 &lt;/li>
&lt;li>system，类似provided，需要显式提供包含依赖的jar，Maven不会在Repository中查找它。&lt;/li>
&lt;/ul>
&lt;p>通过查看pom.xml中Junit的配置，显然版本有些旧了，我们去下载最新的Junit4，但我们又不知道Maven中的具体的版本怎么办呢？我们可以到 Maven 的中央仓库去查询。&lt;/p></description></item></channel></rss>