maven教程之基本介绍

Maven是什么?

Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。

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

优势:约定优于配置

maven安装
maven官网
maven配置环境变量
maven教程
maven官方教程
maven资源搜索

maven 更换镜像

修改setting.xml,位于maven安装目录的conf目录下,可使用下面的镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<mirror>  
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>ui</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://uk.maven.org/maven2/</url>
</mirror>
<mirror>
<id>osc</id>
<mirrorOf>central</mirrorOf>
<url>http://maven.oschina.net/content/groups/public/</url>
</mirror>
<mirror>
<id>osc_thirdparty</id>
<mirrorOf>thirdparty</mirrorOf>
<url>http://maven.oschina.net/content/repositories/thirdparty/</url>
</mirror>

配置文件加载顺序,先加载~/m2/setting.xml,再加载conf/setting.xml

更新Maven的本地库

通常情况下,可改变默认的 .m2 目录下的默认本地存储库文件夹到其他更有意义的名称,例如, maven-repo 找到 {M2_HOME}\conf\setting.xml, 更新 localRepository 到其它名称。
{M2_HOME}\conf\setting.xml

1
2
3
4
5
6
7
<settings><!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ~/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<localRepository>D:\Program\apache-maven-3.5.3\repository</localRepository>

如何从Maven远程存储库下载

在Maven中,当你声明的库不存在于本地存储库中,也没有不存在于Maven中心储存库,该过程将停止并将错误消息输出到 Maven 控制台
示例 org.jvnet.localizer 只适用于 Java.net资源库

1
2
3
4
5
<dependency>
<groupId>org.jvnet.localizer</groupId>
<artifactId>localizer</artifactId>
<version>1.8</version>
</dependency>

当你建立这个 Maven 项目,它将依赖找不到失败并输出错误消息。 2. 声明Java.net储存库 告诉 Maven 来获得 Java.net 的依赖,你需要声明远程仓库在 pom.xml 文件这样:

1
2
3
4
5
6
<repositories>
<repository>
<id>java.net</id>
<url>https://maven.java.net/content/repositories/public/</url>
</repository>
</repositories>

现在,Maven的依赖库查询顺序更改为: 在 Maven 本地资源库中搜索,如果没有找到,
进入第 2 步,否则退出。 在 Maven 中央存储库搜索,如果没有找到,
进入第 3 步,否则退出。 在java.net Maven的远程存储库搜索,如果没有找到,提示错误信息,否则退出。

声明maven依赖

以Log4j 为例

1
2
3
4
5
6
7
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
</dependencies>

如果version标签被忽略,它会自动升级库时当有新的版本时。
Maven 按此顺序搜索 log4j 库
1、在 Maven 的本地仓库搜索 log4j
2、在 Maven 中央存储库搜索 log4j
3、在 Maven 远程仓库搜索 log4j(如果在 pom.xml 中定义)

定制库到Maven本地资源库

下面两种情况需要手动发出Maven命令包括一个 jar 到 Maven 的本地资源库。
要使用的 jar 不存在于 Maven 的中心储存库中。
您创建了一个自定义的 jar ,而另一个 Maven 项目需要使用。

示例

例如,kaptcha,它是一个流行的第三方Java库,它被用来生成 “验证码” 的图片,以阻止垃圾邮件,但它不在 Maven 的中央仓库中。 在本教程中,我们将告诉你如何安装 kaptcha.jar 到Maven 的本地资源库。

mvn 安装 下载 “kaptcha”,将其解压缩并将 kaptcha-version.jar 复制到其他地方,比如:C盘。发出下面的命令:

1
mvn install:install-file -Dfile=c:\kaptcha-{version}.jar -DgroupId=com.google.code -DartifactId=kaptcha -Dversion={version} -Dpackaging=jar

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
D:\>mvn install:install-file -Dfile=c:\kaptcha-2.3.jar -DgroupId=com.google.code -DartifactId=kaptcha -Dversion=2.3 -Dpackaging=jar
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'install'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO] task-segment: [install:install-file] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] [install:install-file]
[INFO] Installing c:\kaptcha-2.3.jar to
D:\maven_repo\com\google\code\kaptcha\2.3\kaptcha-2.3.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Tue May 12 13:41:42 SGT 2014
[INFO] Final Memory: 3M/6M
[INFO] ------------------------------------------------------------------------

现在,“kaptcha” jar被复制到 Maven 本地存储库。

pom.xml 安装完毕后,就在 pom.xml 中声明 kaptcha 的坐标。

1
2
3
4
5
<dependency>
<groupId>com.google.code</groupId>
<artifactId>kaptcha</artifactId>
<version>2.3</version>
</dependency>

完成,现在 “kaptcha” jar 能够从你的 Maven 本地存储库检索了。

从 Maven 模板创建一个项目

在终端(* UNIX或Mac)或命令提示符(Windows)中,浏览到要创建 Java 项目的文件夹。键入以下命令:

1
mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name} -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

使用 mvn archetype:generate + maven-archetype-quickstart 模板, 以下项目的目录结构被创建。

1
2
3
4
5
6
7
8
9
10
11
12
ProjectName
|-src
|---main
|-----java
|-------com
|---------yiibai
|-----------App.java
|---test|-----java
|-------com
|---------yiibai
|-----------AppTest.java
|-pom.xml

所有的源代码放在文件夹 /src/main/java/, 所有的单元测试代码放入 /src/test/java/

从Maven模板创建Web项目

通过使用Maven的maven-archetype-webapp模板来创建一个快速启动Java Web应用程序的项目。
在终端(* UNIX或Mac)或命令提示符(Windows)中,导航至您想要创建项目的文件夹。 键入以下命令:

1
mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name} -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

查看生成的项目结构布局:

1
2
3
4
5
6
7
8
9
.|____ProjectName
||____pom.xml
||____src
|||____main
||||____resources
||||____webapp
|||||____index.jsp
|||||____WEB-INF
||||||____web.xml

Maven 产生了一些文件夹,一个部署描述符 web.xml,pom.xml 和 index.jsp。

打赏

请我喝杯咖啡吧~

支付宝
微信