一、什么是Maven?
Maven本质上是一个工程管理和理解工具。
提供了一种方式,帮助管理:
Builds
Documentation
Reporting
Dependencies
SCMs
Releases
Distribution
二、Maven对我们的开发进度有什么益处?
采用标准的规定和惯例加速开发周期
同时达到更高的成功率
三、如何设置Maven?
Maven默认设置可以满足大多数情况,如果你想改变,cache位置、Http代理,需要改变配置。
Maven的配置三个级别:
(1)Project:大多数静态设置在pom.xml文件中。
(2)Installation:在安装时,加入的配置。
(3)User:对特殊用户的配置。
很显示,Project定义的信息,不管谁建造他,都将被应用到工程。别的两项定义针对当前环境。
注:Installation和User定义的信息,通常不能加入共享工程信息。例如,<organization>和<distributionManagement>。
对于上面注中提到的情况,需要写一个父pom.xml用于让其它工程继承。
1.配置本地资源库
可以修改${user.home}\..m2\settings.xml。该文件不是必需,如没有,系统将使用默认文件(${M2_HOME}\conf\settings.xml)。
打开settings.xml,找到localRepository,默认值为${user.home}\.m2\repository。将默认值改为本地路径。如,d:\repository。
注:该路径必须是本地路径。
2.配置代理
代理也可以在配置文件中指定。
代理作用:供访问Maven 2.0的Http请求使用。
代理设置如果需要验证,需要提供用户名和密码。
setting.xml配置文件:
<proxies>
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<host>proxy.somewhere.com</host>
<port>8080</port>
<username>liuyf</username>
<password>123456</password>
<noProxyHosts>www.google.com|*.somewhere.com</noProxyHosts>
</proxy>
</proxies>
注:noProxyHosts支持通配符。不代理的主机列表。
3.配置并行工程
Maven 2.1.0默认一次下载5个工程(不同组)。
启动Maven时,可以通过-Dmaven.artifact.threads来设定。
mvn –Dmaven.artifact.threads=1 clean install
如果设定固定值,可以通过设置MAVEN_OPTS环境变量,来指定。例如,Unix下,根据需要改为Windows。
export Maven_OPTS=-Dmaven.artifact.threads=10
4.安全和发布设置
发布工程到指定的资源库,是在工程的pom.xml文件中通过<distributionManagement>来设定的。但是你不可以将用户名,密码,和一些安全设置放到这个配置文件中。因此,你应该加入一个server定义,工程通过id来配置对应的server。
<servers>
<server>
<id>lyf</id>
<username>liuyf8688</username>
<password>123456</password>
<privateKey>默认值~/.ssh/id_dsa</privateKey>
<passPhrase>my_key_phrase</passPhrase>
</server>
</servers>
5.使用资源库镜像
资源库可以被声明在一个工程中,那意味着如果你拥有本地的资源库,共享的工程非常容易从资源库外面得到适当的设置。
使用镜像的原因:
(1)在internet网上同步镜像,地理位置近,访问速度快。
(2)可能想用本地的易控的资源库来替换一个特定的资源库。
(3)可能想用maven-proxy提供到镜像的本地缓存,需要替换他的URL。
<mirrors>
<mirror>
<id>liuyf8688</id>
<name>liuyf8688</name>
<url>http://www.liuyf8688.com</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirros>
6.profiles
资源库配置也可以放到profile。可以拥有多个profile文件,根据环境设置一个生效。
四、如何开始我的第一个Maven工程?
使用Maven的原型(archetype)机制。一个archetype定义了针对某一些任务定义了模板。
执行以下命令,创建工程:
mvn archetype:create –DarchetypeGroupId=org.apache.maven.archetypes
–DgroupId=com.liuyf8688 –DartifactId=liuyf-app
命令成功执行后,将建立liuyf-app工程文件夹。进入文件夹,包括src和pom.xml。
1.pom.xml分析
包含工程的工程对象模型。POM是Maven的基本工作单元。
pom.xml片断:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.liuyf8688</groupId>
<artifactId>liuyf-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>liuyf-app</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>3.8.1</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
分析:
(1)project:pom.xml文件的根元素。
(2)modelVersion:这个文件使用的Object Model的版本。
(3)groupId:创建这个工程的组和组织的唯一标识。
(4)artifactId:被这个工程创建的产品的唯一名称。工程的产品典型的是一
个jar文件。源文件打包文件也用这个名称作为他的名称的一部分。
(5)packaging:指示这个产品的使用的打包类型。如,jar、war、ear。
(6)version:指示这个产品的版本。
(7)name:工程显示的名称,默认artifactId相同。maven来产生。
(8)url:指示了工程的站点,默认http://maven.apache.org。maven来产生。
(9)description:提供了工程的基本描述。
五、如何编译工程源文件?
进入刚才创建的工程根目录。执行如下命令:
mvn compile
六、如何编译测试程序及运行单元测试程序?
编译并运行测试程序,执行如下命令:
mvn test
编译测试程序,执行如下命令:
mvn test-compile
七、如何创建Jar并安装到本地资源库?
先编译程序,再打包程序,执行如下命令:
mvn package
安装程序到本地库,执行如下命令:
mvn install
产生IntelliJ IDEA工程描述,执行如下命令:
mvn idea:idea
产生Eclipse工程描述,执行如下命令:
mvn eclipse:eclipse
打包程序,执行如下命令:
mvn jar:jar,注:如果程序没有编译,打包成的Jar,仅仅包含工程的maven信息。
八、如何使用插件?
Maven 1.0用户注意:加入预执行目标到maven.xml和加入一些实体到project.properties文件中,在这里是有一些不同的。
举例:使用配置JDK编译器,允许JDK 1.5编译源程序。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
Maven 2.0中的插件,看起来像是一个依赖。
九、如何加入我的资源文件到JAR文件?
在main部分,创建标准目录resources/META-INF/资源文件。
十、如何过滤资源文件?
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
通过上面指定过滤的资源文件。
(1)资源文件引用pom.xml中的内容
资源文件(app.properties)内容如下:
#app.properties
app.name=${pom.name}
app.version=${pom.version}
资源文件中的${pom.name}和${pom.version}分别引用了pom.xml文件中内容。执
行如下命令后:
mvn process-resources
资源文件(app.properties)内容变为如下:
#app.properties
app.name=liuyf-app
app.version=1.0-SNAPSHOT
(2)资源文件引用外部文件
pom.xml文件添加如下内容到<build>标签。
<filters>
<filter>src/main/filters/filter.properties</filter>
</filters>
资源文件(app.properties)内容如下:
#app.properties
app.name=${pom.name}
app.version=${pom.version}
app.info=${my.filter.value}
外部文件(filter.properties)内容
#filter.properties
my.filter.value=filter content
执行下面命令后:
mvn process-resources
资源文件(app.properties)内容变为如下:
#app.properties
app.name=liuyf-app
app.version=1.0-SNAPSHOT
app.info=filter content
(3)引用在pom.xml文件中指定<properties>属性中指定的值。
pom.xml文件加入:
<properties>
<my.filter.value>123456</my.filter.value>
</properties>
(4)引用命令行
资源文件内容如下:
#app.properties
app.name=${pom.name}
app.version=${pom.version}
app.info=${command.line.prop}
执行如下命令:
mvn process-resources “-Dcommand.line.prop=789456123”
资源文件内容如下:
#app.properties
app.name=liuyf-app
app.version=1.0-SNAPSHOT
app.info=789456123
十一、如何使用外部依赖?
引用外部依赖需要至少定义四个东西:
groupId
artifactId
version
scope
pom.xml中关于依赖的代码片断:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
其中scope元素表示工程
分享到:
相关推荐
Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM),能够管理项目的构建、报告和依赖关系。在本文中,我们将深入探讨Maven 3.6.3这一特定版本,...
Maven,作为Java开发中的一个关键工具,是Apache软件基金会下的项目,旨在提供一个统一的构建和管理Java项目的方式。它通过XML配置文件,自动解决项目的依赖问题,大大简化了项目的构建过程。在这个“35.会员版(2.0)...
Apache Maven 是一个项目管理和理解工具。基于项目对象模型(POM),通过一小段描述信息来管理项目的构建、报告和文档。Maven 可以从项目的一个中心信息出发,只读取所需的项目信息或者执行构建项目。 #### 二、...
- Maven的下载:首先,你需要从Apache官方网站下载Maven的最新版本。 - 环境变量设置:将Maven的bin目录添加到系统路径中,确保可以在命令行中直接运行Maven命令。 - 配置settings.xml:这是Maven的全局配置文件...
《Maven权威指南》是一本深受开发者欢迎的书籍,它详细介绍了Apache Maven这一构建工具的使用和配置。Maven简化了Java项目的构建过程,通过一套约定优于配置的原则,使得项目结构标准化,依赖管理自动化,大大提高了...
1. **设置 `MAVEN_HOME`**:创建一个新的系统环境变量,名为 `MAVEN_HOME`,其值指向你的Maven安装目录,如 `D:\Program Files\apache-maven-3.0.3`。 2. **更新 `PATH`**:打开 `PATH` 环境变量,将 `MAVEN_HOME` ...
3. **apache-maven-3.1.0**:这是一个压缩文件,解压后会得到Maven 3.1的完整安装包,包括bin目录下的可执行文件,conf目录下的配置文件,以及lib目录下的依赖库。 ** Maven配置关键点 ** 1. **Maven的环境变量...
### Maven进阶知识 #### 6. 依赖管理 - **依赖声明**:在`pom.xml`中声明项目依赖的库。 - **依赖范围**:如compile、test、provided等,控制依赖在不同阶段的行为。 - **依赖传递性**:当项目依赖另一个项目时,会...
Maven版本:apache-maven-3.6.2 MYSQL版本:MySQL Ver 8.0.17 for Win64 on x86_64(5.7版本也可以) Mybatis版本:2.0.0 开发工具:IntelliJ IDEA 2019.3.3 开发使用的技术 前端UI:layui-2.x + X-admin2.2 前后端...
Maven是一个强大的Java项目管理工具,它能够帮助开发者构建、管理和部署Java应用程序。本教程将详细介绍Maven的下载、安装、配置以及基本使用方法。 ### 1. Maven简介 Maven通过一个项目对象模型(Project Object ...
- `已经配置好的apache-maven-3.0.4.rar`可能是预配置好的Maven环境,解压后可以直接使用。 ### Maven实战与学习资源 - `Maven实战.pdf`可能是一本关于Maven实际应用的书籍,涵盖了从基础到高级的各种用法,是学习...
Maven,作为Java世界中的一款项目管理和综合工具,是Apache软件基金会下的一个项目。它简化了构建、依赖管理以及项目生命周期的维护。Maven通过使用一个项目对象模型(Project Object Model,POM)来描述项目,并且...
- **Maven简介**:Apache Maven是一个项目管理和理解工具。基于项目对象模型(POM)的概念,Maven可以管理一个项目的构建、报告和文档的整个周期。Maven的主要优势在于简化了项目的构建过程,使得依赖管理和构建流程...
1. **下载**:访问Apache Maven官方网站下载最新或指定版本的Maven,如maven.apache.org/download.html。 2. **解压**:将下载的zip文件解压到任意位置,例如`C:\Program Files\Apache\maven-3.5`。 3. **配置环境...
Apache Maven 是一款广泛应用于 Java 项目的管理与构建自动化工具。它通过一系列规范化的生命周期和构建过程,使得 Java 项目的构建更加高效和一致。本文将详细介绍 Maven 的下载、安装、配置、使用教程以及相关项目...
1. **下载Maven**:首先,你需要访问Apache Maven官方网站(http://maven.apache.org/download.cgi)下载最新版本的Maven。根据你的操作系统(Windows, Linux, macOS)选择相应的压缩包。 2. **解压Maven**:下载...
2. **选择合适的压缩包**:根据需要选择一个适合当前操作系统的压缩包进行下载,例如:`apache-maven-X.X.X-bin.tar.gz`(其中`X.X.X`表示具体的版本号)。 ##### 2.2 安装Maven 1. **解压文件**:将下载的压缩包...
#### 四、Maven进阶主题 - **多模块项目**:Maven支持构建多模块项目,可以将大型项目拆分为多个子模块,每个子模块都有自己的`pom.xml`。 - **自定义构建生命周期**:Maven允许用户通过自定义构建生命周期来扩展...
Apache Maven 是一款用于Java项目的自动化构建工具。它通过一个项目对象模型(POM)来管理项目的构建、报告和文档。Maven 使用XML文件(pom.xml)来定义项目的构建规则和依赖关系。它提供了统一的标准流程,使得项目...
Maven是由Apache软件基金会开发的一个项目管理工具,其核心理念是通过一个统一的构建过程来管理项目。Maven通过XML格式的`pom.xml`文件来描述项目信息、依赖关系和构建指令。它自动下载所需库,构建项目,并可以执行...