`
liuyf8688
  • 浏览: 99751 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Apache-Maven进阶一

阅读更多

一、什么是Maven

Maven本质上是一个工程管理和理解工具。

提供了一种方式,帮助管理:

Builds

Documentation

Reporting

Dependencies

SCMs

Releases

Distribution

二、Maven对我们的开发进度有什么益处?

采用标准的规定和惯例加速开发周期

同时达到更高的成功率

三、如何设置Maven

Maven默认设置可以满足大多数情况,如果你想改变,cache位置、Http代理,需要改变配置。

Maven的配置三个级别:

1Project:大多数静态设置在pom.xml文件中。

2Installation:在安装时,加入的配置。

3User:对特殊用户的配置。

很显示,Project定义的信息,不管谁建造他,都将被应用到工程。别的两项定义针对当前环境。

注:InstallationUser定义的信息,通常不能加入共享工程信息。例如,<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.0Http请求使用。

代理设置如果需要验证,需要提供用户名和密码。

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工程文件夹。进入文件夹,包括srcpom.xml

1.pom.xml分析

包含工程的工程对象模型。POMMaven的基本工作单元。

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>

分析:

1projectpom.xml文件的根元素。

2modelVersion:这个文件使用的Object Model的版本。

3groupId:创建这个工程的组和组织的唯一标识。

4artifactId:被这个工程创建的产品的唯一名称。工程的产品典型的是一

jar文件。源文件打包文件也用这个名称作为他的名称的一部分。

5packaging:指示这个产品的使用的打包类型。如,jarwarear

6version:指示这个产品的版本。

7name:工程显示的名称,默认artifactId相同。maven来产生。

8url:指示了工程的站点,默认http://maven.apache.orgmaven来产生。

9description:提供了工程的基本描述。

五、如何编译工程源文件?

进入刚才创建的工程根目录。执行如下命令:

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-3.6.3-bin,文件下载机房教学使用的

    Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM),能够管理项目的构建、报告和依赖关系。在本文中,我们将深入探讨Maven 3.6.3这一特定版本,...

    35.会员版(2.0)-就业课(2.0)-Maven高级.zip

    Maven,作为Java开发中的一个关键工具,是Apache软件基金会下的项目,旨在提供一个统一的构建和管理Java项目的方式。它通过XML配置文件,自动解决项目的依赖问题,大大简化了项目的构建过程。在这个“35.会员版(2.0)...

    maven windows安装

    Apache Maven 是一个项目管理和理解工具。基于项目对象模型(POM),通过一小段描述信息来管理项目的构建、报告和文档。Maven 可以从项目的一个中心信息出发,只读取所需的项目信息或者执行构建项目。 #### 二、...

    Maven中文开发指南+实战教程+学习笔记

    - Maven的下载:首先,你需要从Apache官方网站下载Maven的最新版本。 - 环境变量设置:将Maven的bin目录添加到系统路径中,确保可以在命令行中直接运行Maven命令。 - 配置settings.xml:这是Maven的全局配置文件...

    maven权威指南高清版+mvn-examples-1.0.zip MAVEN权威指南对应示例代码

    《Maven权威指南》是一本深受开发者欢迎的书籍,它详细介绍了Apache Maven这一构建工具的使用和配置。Maven简化了Java项目的构建过程,通过一套约定优于配置的原则,使得项目结构标准化,依赖管理自动化,大大提高了...

    maven安装与配置

    1. **设置 `MAVEN_HOME`**:创建一个新的系统环境变量,名为 `MAVEN_HOME`,其值指向你的Maven安装目录,如 `D:\Program Files\apache-maven-3.0.3`。 2. **更新 `PATH`**:打开 `PATH` 环境变量,将 `MAVEN_HOME` ...

    maven-3.1的资源包

    3. **apache-maven-3.1.0**:这是一个压缩文件,解压后会得到Maven 3.1的完整安装包,包括bin目录下的可执行文件,conf目录下的配置文件,以及lib目录下的依赖库。 ** Maven配置关键点 ** 1. **Maven的环境变量...

    尚硅谷maven视屏

    ### Maven进阶知识 #### 6. 依赖管理 - **依赖声明**:在`pom.xml`中声明项目依赖的库。 - **依赖范围**:如compile、test、provided等,控制依赖在不同阶段的行为。 - **依赖传递性**:当项目依赖另一个项目时,会...

    基于 Java+Mysql 实现的企业仓库存储管理系统

    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 下载、安装、配置与使用教程

    Maven是一个强大的Java项目管理工具,它能够帮助开发者构建、管理和部署Java应用程序。本教程将详细介绍Maven的下载、安装、配置以及基本使用方法。 ### 1. Maven简介 Maven通过一个项目对象模型(Project Object ...

    Maven培训 资料

    - `已经配置好的apache-maven-3.0.4.rar`可能是预配置好的Maven环境,解压后可以直接使用。 ### Maven实战与学习资源 - `Maven实战.pdf`可能是一本关于Maven实际应用的书籍,涵盖了从基础到高级的各种用法,是学习...

    maven那些事儿....

    Maven,作为Java世界中的一款项目管理和综合工具,是Apache软件基金会下的一个项目。它简化了构建、依赖管理以及项目生命周期的维护。Maven通过使用一个项目对象模型(Project Object Model,POM)来描述项目,并且...

    eclipse-smart自带maven插件的eclipse安装包

    - **Maven简介**:Apache Maven是一个项目管理和理解工具。基于项目对象模型(POM)的概念,Maven可以管理一个项目的构建、报告和文档的整个周期。Maven的主要优势在于简化了项目的构建过程,使得依赖管理和构建流程...

    maven工具和安装方法

    1. **下载**:访问Apache Maven官方网站下载最新或指定版本的Maven,如maven.apache.org/download.html。 2. **解压**:将下载的zip文件解压到任意位置,例如`C:\Program Files\Apache\maven-3.5`。 3. **配置环境...

    maven下载、安装、配置与使用教程&相关项目

    Apache Maven 是一款广泛应用于 Java 项目的管理与构建自动化工具。它通过一系列规范化的生命周期和构建过程,使得 Java 项目的构建更加高效和一致。本文将详细介绍 Maven 的下载、安装、配置、使用教程以及相关项目...

    maven的安装配置及入门

    1. **下载Maven**:首先,你需要访问Apache Maven官方网站(http://maven.apache.org/download.cgi)下载最新版本的Maven。根据你的操作系统(Windows, Linux, macOS)选择相应的压缩包。 2. **解压Maven**:下载...

    Maven下载、安装、配置与使用教程

    2. **选择合适的压缩包**:根据需要选择一个适合当前操作系统的压缩包进行下载,例如:`apache-maven-X.X.X-bin.tar.gz`(其中`X.X.X`表示具体的版本号)。 ##### 2.2 安装Maven 1. **解压文件**:将下载的压缩包...

    maven实战教程 视频

    #### 四、Maven进阶主题 - **多模块项目**:Maven支持构建多模块项目,可以将大型项目拆分为多个子模块,每个子模块都有自己的`pom.xml`。 - **自定义构建生命周期**:Maven允许用户通过自定义构建生命周期来扩展...

    MAVEN基础篇-资料整理

    Apache Maven 是一款用于Java项目的自动化构建工具。它通过一个项目对象模型(POM)来管理项目的构建、报告和文档。Maven 使用XML文件(pom.xml)来定义项目的构建规则和依赖关系。它提供了统一的标准流程,使得项目...

    Maven学习手册

    Maven是由Apache软件基金会开发的一个项目管理工具,其核心理念是通过一个统一的构建过程来管理项目。Maven通过XML格式的`pom.xml`文件来描述项目信息、依赖关系和构建指令。它自动下载所需库,构建项目,并可以执行...

Global site tag (gtag.js) - Google Analytics