maven配置全局变量(maven全局配置文件路径为)

http://www.itjxue.com  2023-02-18 12:18  来源:未知  点击次数: 

maven3.X学习系列四 releases和snapshots的版本控制

meta charset="utf-8"

我们知道 snapshots 版本是不稳定的版本,releases是稳定的版本。生产环境与开发环境应该使用不同的仓库来分离。之前说过版本号带有 -snapshots nexus会自动放入snapshots 仓库,反之放入releases。

我们只需要开发环境打包的时候 带上 -snapshots 而生产环境的时候不带就可以做到两个环境的分离。下面来具体说说

1、profiles

maven profiles 的可以定义不同环境的参数变量。

一个profile 代表一个环境。profile 中有一个 properties 参数是一个自定义。它属于全局变量,

在其他地方使用时用${version.suffix} 在项目使用时会进行替换。

在pom.xml 配置全局变量

这样我们的我们的版本就随着 环境的不同而不同了。

在dev 环境中 我们的版本是1.21-SNAPSHOTS

在prod环境中我们的版本是1.2.1

这样我们的生产环境和开发环境的jar包 就分离开了。

在打包的时候 可以加上-P profile.id

例如 mvn deploy -P prod 生产环境

mvn deploy -P dev 开发环境

2、分角色打包

通过profile 我们已经可以实现不同环境使用不同的仓库,但是每个人都有打包的权利依然很难很好的控制版本,尤其是releases 仓库。之前我们说过nexus 的权限控制,这里我们需要将不同环境的人的打包权限控制。例如测试的人员打releases 的包 而开发人员打snapshots 的包。

这里需要创建两个账号 、

一个是开发人员角色(有snapshots 新增的权限)

一个是测试人员角色(有releases 新增的权限)

只有admin 有修改删除的权限。

修改pom.xml其中配置

将要打包到的地址 在profile中配置,

开发人员 maven setting.xml的配置的是开发人员的账号

测试人员 maven setting.xml的配置的是测试人员的账号

这样就可以做到不同环境,不同角色 releases和snapshots的版本控制。

测试人员打包 可以集成在jenkins上

可以参考这篇

maven全局配置文件路径为

conf/settings.xml文件。根据查询maven全局配置的相关资料显示,maven全局配置文件路径为conf/settings.xml文件。Maven的全局配置文件是Maven安装目录conf/settings.xml文件,该文件可以配置仓库、代理、profile、镜像、插件等。

如何在环境变量中配置maven环境变量

myeclipse自带maven(Maven4MyEclipse)

创建项目:

新建Web Projects项目,在新建的页面上打上maven的勾。新建的项目里会多出个pom.xml文件

为项目添加依赖包:

右键项目,选择Maven4MyEclipse--add Dependency。输入包名,maven会从中央库中查找。

创建自己的依赖包:

在pom.xml文件上右键,选择run as--maven install。该命令将项目发布到本地的资源库中。

其他项目需要用到这个资源,输入资源名称就可以找到。

手动安装maven

Maven 2.2.1为例 (3.0.3没下下来)

下载地址:

解压maven到安装的位置

如D:\

设置maven环境变量

配置maven环境之前要确定配置好了jdk的环境

maven_home=D:\apache-maven-2.2.1

PATH=%maven_home%\bin

测试maven是否成功

mvn -v

构建myeclipse项目

建一个web项目

mvn archetype:create -DgroupId=com.myframe -DartifactId=myframe -DarchetypeArtifactId=maven-archetype-webapp

-DgroupId 生成pom的groupidcom.myframe/groupid节点,本工程生成的jar包给其它工程依赖时用。

-DartifactId 生成的文件夹名,也就是Eclipse中web工程的名字

生成Eclipse项目

mvn eclipse:myeclipse

通过myeclipse导入生成的myeclipse项目

配置本地Repository

本地Repository的默认值是${user.home}/.m2/repository/,可在user configuration(${user.home}/.m2/setting.xml)中改变本地Repository

localRepositoryD:/.m2/repository/localRepository 将maven的jar仓库放在D:/.m2/repository文件夹下

maven常用命令

mvn archetype:create :创建 Maven 项目

mvn compile :编译源代码

mvn test-compile :编译测试代码

mvn test : 运行应用程序中的单元测试

mvn site : 生成项目相关信息的网站

mvn clean :清除目标目录中的生成结果

mvn package : 依据项目生成 jar 文件

mvn install :在本地 Repository 中安装 jar

mvn eclipse:eclipse :生成 Eclipse 项目文件

pom.xml文件节点介绍

project :文件的根节点 .

modelversion : pom.xml 使用的对象模型版本

groupId :创建项目的组织或团体的唯一 Id

artifactId :项目的唯一 Id, 可视为项目名

version :产品的版本号

packaging :打包物的扩展名,一般有 JAR,WAR,EAR 等

name :项目的显示名,常用于 Maven 生成的文档

url :组织的站点,常用于 Maven 生成的文档

description :项目的描述,常用于 Maven 生成的文档

classifier : 分类

outputDirectory : 定义输出文件夹

type : 相应的依赖产品包形式,如jar,war

scope : 用于限制相应的依赖范围,包括以下的几种变量

compile :默认范围,用于编译

provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath

runtime:在执行时,需要使用

test:用于test任务时使用

system:需要外在提供相应得元素。通过systemPath来取得

systemPath : 仅用于范围为system。提供相应的路径

optional : 标注可选,当项目自身也是依赖时。用于连续依赖时使用

还有两个问题没解决:

1.用maven构建的工程导入myeclipse中是java工程

2.myeclipse8.5自带maven插件创建的web项目怎么构建maven目录结构

3.导入的myeclipse工程没有Maven Dependencies依赖包

jenkins mvn command not found

部署完jenkins,部署一个自由风格的job,

构建过程的设置如下:

构建的报如下错误:

但是此时我的jenkins所在的机器上是已经安装了maven的。

回到jenkins主页面,

系统管理-系统配置

找到下面的配置,为maven添加全局变量

点击保存,再次进行构建的时候,问题得到解决。

(责任编辑:IT教学网)

更多

推荐Painter教程文章