使用 Maven 构建应用
2018-12-31 本文已影响0人
索伦x
引言
- 掌握Maven的网络模型
- 学会POM文件的制作
- 掌握Maven的常用命令
- 了解模块化编程思想
Maven 简介
Apache Maven是一个软件项目管理和综合工具。
基于项目对象模型(POM)的概念,Maven可以从一个中心资料片管理项目构建,报告和文件。
为什么需要使用MAVEN
-
Maven之前我们经常使用Ant来进行Java项目的构建然后Ant仅是一个构建工具, 它并未对项目的中的工程依赖以及项目本身进行管理, 并且Ant作为构建工具未能消除软件构建的重复性, 因为不同的项目需要编写对应的Ant任务。
-
Maven作为后来者, 继承了Ant的项目构建功能, 并且提供了依赖关系, 项目管理的功能, 因此它是一个项目管理和综合工具, 其核心的依赖管理, 项目信息管理, 中央仓库, 约定大于配置的核心功能使得Maven成为当前Java项目构建和管理工具的标准选择。
Maven 安装配置
- 下载Apache Maven
http://maven.apache.org/download.cgi - 解压到指定文件夹,并且设置环境变量
添加 M2_HOME 和 MAVEN_HOME、PATH
添加 M2_HOME 和 MAVEN_HOME 环境变量到 Windows 环境变量,并将其指向你的 Maven 文件夹。 - 完成,以验证它,执行 mvn –version 在命令提示符下,如下图输出结果
Maven 仓库
中央仓库 = 私服,企业中通常的叫法
Settings.xml配置
settings.xml是maven的全局配置文件
Settings.xml中包含类似本地仓储位置、修改远程仓储服务器、认证信息等配置。
-
配置优先级
需要注意的是:局部配置优先于全局配置。 配置优先级从高到低:pom.xml> user settings > global settings 如果这些文件同时存在,在应用配置时,会合并它们的内容,如果有重复的配置,优先级高的配置会覆盖优先级低的。
-
核心配置项示例:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>d:\maven\repository</localRepository>
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<servers>
<server>
<id>nexus-snapshots</id>
<username>deployment</username>
<password>zdsh123456</password>
</server>
</servers>
</mirrors>
</settings>
- 设置本地仓库的地址
<localRepository>d:\maven\repository</localRepository>
- 下载镜像
<mirror>....</mirror>
- 中央仓库账号
</server>... </server>
Maven pom文件
- 基本配置项
<groupId>:组织
<artifactId>:项目/模块名称
<version>:版本号+类型
<packaging>:打包类型,默认是jar,可以配置成war、zip、pom类型。
<properties>:属性值标签,也叫变量标签。
<dependencies> :依赖标签
<distributionManagement> //发布管理
<repository>
<id>nexus-releases</id>
<name>Local Nexus Repository</name>
<url>http://10.105.7.100:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Local Nexus Repository</name>
<url>http://10.105.7.100:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
- 指定项目JDK版本
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins </groupId>
<artifactId>maven-compiler-plugin </artifactId>
<version>2.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
- 指定编码字符集
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>
模块化编程
<modules>
<module>myshopx-web</module>
<module>myshopx-api</module>
<module>myshopx-common</module>
</modules>
<packaging>pom</packaging>
多环境配置文件切换
<build>
<resources>
<!-- 需要过滤替换的资源 -->
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>JDBC.properties</include>
</includes>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>dev</id>
<!-- 默认激活开发配制,使用config-local.properties来替换设置过虑的资源文件中的${key} -->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<filters>
<filter>filters/dev.properties</filter>
</filters>
</build>
</profile>
<profile>
<id>prd</id>
<build>
<filters>
<filter>filters/prd.properties</filter>
</filters>
</build>
</profile>
</profiles>
mvn clean package -Pdev
--开发环境
mvn clean package -Pprd
--投产环境
Maven 常用命令
mvn clean
//清理项目
mvn package
//打包项目
mvn install
//打包并上传到本地仓库
mvn deploy
//打包并发布到私服, 同时更新本地仓