Maven 安装和配置

Maven 资料

Maven 安装(bash 环境)

  • Maven 3.3 的 JDK 最低要求是 JDK 7
  • 下载压缩包:wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
  • 解压:tar zxvf apache-maven-3.3.9-bin.tar.gz
  • 修改目录名,默认的太长了:mv apache-maven-3.3.9/ maven3.3.9/
  • 移到我个人习惯的安装目录下:mv maven3.3.9/ /usr/local
  • 环境变量设置:vim /etc/profile
  • 在文件最尾巴添加下面内容:
1
2
3
4
5
6
7
8
9
# Maven
MAVEN_HOME=/usr/local/maven3.3.9
M3_HOME=/usr/local/maven3.3.9
PATH=$PATH:$M3_HOME/bin
MAVEN_OPTS="-Xms256m -Xmx356m"
export M3_HOME
export MAVEN_HOME
export PATH
export MAVEN_OPTS
  • 刷新配置文件:source /etc/profile
  • 测试是否安装成功:mvn -version

Maven 配置

  • 创建本地参数:mkdir -p /opt/maven-repository
  • 配置项目连接上私服
  • 编辑配置文件:vim /usr/local/maven3.3.9/conf/settings.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?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>/opt/maven-repository</localRepository>

<pluginGroups>
</pluginGroups>

<proxies>
</proxies>

<!--设置 Nexus 认证信息-->
<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>

<!--有自己的 nexus 改为自己的-->
<mirrors>
<mirror>
<id>aliyun-releases</id>
<mirrorOf>*</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
<mirror>
<id>aliyun-snapshots</id>
<mirrorOf>*</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>

</settings>

资料

Maven deploy file 上传 pom

mvn deploy:deploy-file -DgroupId= -DartifactId= -Dversion= -Dpackaging=jar -Dfile=<Path_TO_JAR_OR_WAR> -DrepositoryId=<RepositoryId_defined_in_settings_xml> -Durl= -DgeneratePom=true -DpomFile=<PATH_TO_POM>

Maven deploy file 上传 jar

mvn install:install-file -Dfile=E:\jar\org.apache.poi.xwpf.converter.xhtml-1.0.5.jar -DgroupId=fr.opensagres.xdocreport -DartifactId=org.apache.poi.xwpf.converter.xhtml -Dversion=1.0.5 -Dpackaging=jar

例子

deploy pom

mvn deploy:deploy-file -DgroupId=com.huapisong.parent -DartifactId=com_base_parent -Dversion=1.0.0-RELEASE -Dpackaging=pom -Dfile=E:\com_base_parent-1.0.0-RELEASE.pom -DrepositoryId=huapisong -Durl=http://localhost:9090/repository/huapisong/ -DgeneratePom=true

deploy jar

mvn deploy:deploy-file -DgroupId=com.huapisong.common -DartifactId=com_base_common -Dversion=1.0.0-RELEASE -Dpackaging=jar -Dfile=E:\com_base_common-1.0.0-RELEASE.jar -DrepositoryId=huapisong -Durl=http://localhost:9090/repository/huapisong/

install 命令,file 参数是必选的,但是如果在本地库里面没有 groupId、artifactId 和 version 对应的目录,那么 maven 会要求传入这些参数,packaging 则根据需要上传的文件类型指定。
deploy 命令 file、repositoryId 和 url 是必选的。其中 DrepositoryId 是指远程 maven 库的 id,一般会配置在 setting.xml 文件里面,是在标签下的那个 id。url 比较重要,如果错误的话,是无法上传的,一般来说我们可以在 setting.xml 文件的标签下找到,但是这个下的这个 url 不一定就是真正的 maven 库地址,如果这个 url 不行,那么可以尝试把这个 url 中的最后一个路径替换成标签下自标签的内容,一般来说是可以行的

Maven 命令参数

备注
mvn -v –version 显示版本信息;
mvn -V –show-version 显示版本信息后继续执行Maven其他目标;
mvn -h –help 显示帮助信息;
mvn -e –errors 控制Maven的日志级别,产生执行错误相关消息;
mvn -X –debug 控制Maven的日志级别,产生执行调试信息;
mvn -q –quiet 控制Maven的日志级别,仅仅显示错误;
mvn -Pxxx 激活 id 为 xxx的profile (如有多个,用逗号隔开);
mvn -Dxxx=yyy 指定Java全局属性;
mvn -o –offline 运行offline模式,不联网更新依赖;
mvn -N –non-recursive 仅在当前项目模块执行命令,不构建子模块;
mvn -pl –module_name 在指定模块上执行命令;
mvn -ff –fail-fast 遇到构建失败就直接退出;
mvn -fn –fail-never 无论项目结果如何,构建从不失败;
mvn -fae –fail-at-end 仅影响构建结果,允许不受影响的构建继续;
mvn -C –strict-checksums 如果校验码不匹配的话,构建失败;
mvn -c –lax-checksums 如果校验码不匹配的话,产生告警;
mvn -U 强制更新snapshot类型的插件或依赖库(否则maven一天只会更新一次snapshot依赖);
mvn -npu –no-plugin-s 对任何相关的注册插件,不进行最新检查(使用该选项使Maven表现出稳定行为,该稳定行为基于本地仓库当前可用的所有插件版本);
mvn -cpu –check-plugin-updates 对任何相关的注册插件,强制进行最新检查(即使项目POM里明确规定了Maven插件版本,还是会强制更新);
mvn -up –update-plugins [mvn -cpu]的同义词;
mvn -B –batch-mode 在非交互(批处理)模式下运行(该模式下,当Mven需要输入时,它不会停下来接受用户的输入,而是使用合理的默认值);
mvn -f –file 强制使用备用的POM文件;
mvn -s –settings 用户配置文件的备用路径;
mvn -gs –global-settings 全局配置文件的备用路径;
mvn -emp –encrypt-master-password 加密主安全密码,存储到Maven settings文件里;
mvn -ep –encrypt-password 加密服务器密码,存储到Maven settings文件里;
mvn -npr –no-plugin-registry 对插件版本不使用~/.m2/plugin-registry.xml(插件注册表)里的配置;