用户工具


Maven 功能及其语法

maven中有很多语法,这里我们说说一些常用的语法


依赖

<dependency>
	<groupId>org.hibernate</groupId>
	<artifactId>hibernate-core</artifactId>
	<version>4.3.3.Final</version>
</dependency>

屏蔽依赖传递

<dependency>
	<groupId>org.hibernate</groupId>
	<artifactId>hibernate-core</artifactId>
	<version>4.3.3.Final</version>
	<exclusions>
		<groupId>dom4j</groupId>
		<artifactId>dom4j</artifactId><!--无需再声明版本-->
	</exclusions>
</dependency>

构建有效范围

<dependency>
	<groupId>org.hibernate</groupId>
	<artifactId>hibernate-core</artifactId>
	<version>4.3.3.Final</version>
	<scope>test</scope><!--scope标签声明为test,则依赖不会被传递。默认值是之compile,依赖会被传递-->
</dependency>

继承

<parent><!--指明父项目的坐标-->
	<groupId>cn.wp.test</groupId>
	<artifactId>parent</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<relativePath>../parent/pom.xml</relativePath>
</parent>

强制性继承(父pom.xml文件中直接添加依赖)

<dependency>
	<groupId>org.hibernate</groupId>
	<artifactId>hibernate-core</artifactId>
	<version>4.3.3.Final</version>
</dependency>

选择性继承(父pom.xml文件中添加依赖管理,子项目选择继承)

父项目
<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>4.3.3.Final</version>
		</dependency>
	</dependencies>
</dependencyManagement>
子项目
<dependency>
	<groupId>org.hibernate</groupId>
	<artifactId>hibernate-core</artifactId><!--无需再声明版本-->
</dependency>

聚合

<modules>
	<module>../main/pom.xml</module><!--指明模块项目的路径-->
	<module>../model1/pom.xml</module><!--指明模块项目的路径-->
</modules>

发布

配置项目pom.xml(声明发布的仓库)

<distributionManagement>
	<repository><!-- 发布版本发布仓库 -->
		<id>wepu-releases</id><!-- 与下面server下id标签命名要对应 -->
		<name>wepu-releases</name>
		<url>http://192.168.41.191:8081/nexus/content/repositories/releases/</url>
	</repository>
	<snapshotRepository><!-- 快照版本发布仓库 -->
		<id>wepu-snapshots</id>
		<name>wepu-snapshots</name>
		<url>http://192.168.41.191:8081/nexus/content/repositories/snapshots/</url>
	</snapshotRepository>
</distributionManagement>

配置maven 工作区中 settings.xml(发布的权限)

<servers>
	<server>
		<id>wepu-releases</id><!-- 与上面面repository下id标签命名要对应 -->
		<username>deployment</username>
		<password>deployment123</password>
	</server>
	<server>
		<id>wepu-snapshots</id>
		<username>deployment</username>
		<password>deployment123</password>
	</server>
</servers>

配置 nexus 镜像

  • 每个用户都有属于自己的maven配置文件,配置文件默认再HOME/.m2/setttings.xml。
  • 在配置文件中可以配置本地私服(默认会从web上的中心仓库上下载)
  • 我们已经搭建了中心仓库的本地代理。所以我们将修改配置文件,指向我们本地的中心仓库
编辑HOME/.m2/setttings.xml

vim /home/fang/.m2/settings.xml

<?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">
<mirrors>
  <mirror>
    <id>central</id><!-- id + name 只是当前镜像节点的标识 -->
    <name>central mirror</name>
    <mirrorOf>*</mirrorOf> <!-- 对所有仓库镜像 -->
    <url>http://192.168.41.191:8081/nexus/content/groups/public/</url>
  </mirror>
</mirrors>
</settings>

可继承的元素

groupId :项目组 ID ,项目坐标的核心元素;
version :项目版本,项目坐标的核心元素;
description :项目的描述信息;
organization :项目的组织信息;
inceptionYear :项目的创始年份;
url :项目的 url 地址
develoers :项目的开发者信息;
contributors :项目的贡献者信息;
distributionManagerment :项目的部署信息;
issueManagement :缺陷跟踪系统信息;
ciManagement :项目的持续继承信息;
scm :项目的版本控制信息;
mailingListserv :项目的邮件列表信息;
properties :自定义的 Maven 属性;
dependencies :项目的依赖配置;
dependencyManagement :醒目的依赖管理配置;
repositories :项目的仓库配置;
build :包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等;
reporting :包括项目的报告输出目录配置、报告插件配置等。