我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么使用自定义Maven设置文件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么使用自定义Maven设置文件

本文小编为大家详细介绍“怎么使用自定义Maven设置文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用自定义Maven设置文件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

Mavensettings.xml文件定义了以各种方式配置Maven执行的值。最常见的是,它用于定义本地存储库位置、备用远程存储库服务器以及私有存储库的身份验证信息。如果您已经有一个 Java 应用程序,您可以在本示例中使用它。否则,从Heroku 上的 Java 入门文章创建一个简单的应用程序。

创建自定义设置文件

当settings.xml应用程序的根目录中存在名为的文件时, Heroku 的 Java 支持将在编译时自动使用它来配置 Maven。

为了演示这一点,settings.xml在 Java 项目的根目录中添加一个文件,并将以下代码放入其中。

<?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">  <profiles>    <profile>      <id>jboss-public</id>      <repositories>        <repository>          <id>jboss-public-repository</id>          <name>JBoss Public Maven Repository Group</name>          <url>http://repository.jboss.org/nexus/content/groups/public/</url>        </repository>      </repositories>    </profile>  </profiles>  <activeProfiles>    <activeProfile>jboss-public</activeProfile>  </activeProfiles></settings>

这告诉 Maven在解析应用程序的依赖项时搜索托管在http://repository.jboss.org/的存储库。存储库必须使用 HTTP 或 HTTPS 寻址。

我们可以通过将-s选项添加到任何 Maven 任务来在本地测试设置。但首先,我们需要向项目添加一个新的依赖项。该jboss.web.servlet-api库是一个很好的示例,因为它仅在 JBoss 存储库中可用。将以下元素添加到您的项目的pom.xml:

<dependency>  <groupId>jboss.web</groupId>  <artifactId>servlet-api</artifactId>  <version>2.1.0.GA</version></dependency>

现在运行以下命令,Maven 将下载工件。

mvn -s settings.xml dependency:list[INFO] Scanning for projects......Downloading: http://repository.jboss.org/nexus/content/groups/public/jboss/web/servlet-api/2.1.0.GA/servlet-api-2.1.0.GA.pomDownloaded: http://repository.jboss.org/nexus/content/groups/public/jboss/web/servlet-api/2.1.0.GA/servlet-api-2.1.0.GA.pom (195 B at 0.2 KB/sec)Downloading: http://repository.jboss.org/nexus/content/groups/public/jboss/web/servlet-api/2.1.0.GA/servlet-api-2.1.0.GA.jarDownloaded: http://repository.jboss.org/nexus/content/groups/public/jboss/web/servlet-api/2.1.0.GA/servlet-api-2.1.0.GA.jar (84 KB at 90.8 KB/sec)

如果我们没有使用自定义设置文件,构建就会失败,Maven 会产生这样的错误:

Downloading: http://repo.maven.apache.org/maven2/jboss/web/servlet-api/2.1.0.GA/servlet-api-2.1.0.GA.pom[WARNING] The POM for jboss.web:servlet-api:jar:2.1.0.GA is missing, no dependency information availableDownloading: http://repo.maven.apache.org/maven2/jboss/web/servlet-api/2.1.0.GA/servlet-api-2.1.0.GA.jar...[ERROR] Failed to execute goal on project helloworld: Could not resolve dependencies for project com.example:helloworld:jar:1.0-SNAPSHOT: Could not find artifact jboss.web:servlet-api:jar:2.1.0.GA in central (http://repo.maven.apache.org/maven2) -> [Help 1]

现在将settings.xml和pom.xml更改添加到您的 Git 存储库并像这样部署到 Heroku:

当 Maven 在 dyno 上运行时,我们看到的输出与我们在本地看到的输出相同。这是有效的,因为 Heroku 检测settings.xml根目录中的文件,并将-s选项添加到 Maven 命令。接下来,我们将讨论如何自定义此位置。

定义 MAVEN_SETTINGS_PATH 配置变量

如果您不希望该settings.xml文件位于根目录中,或者您打算在不同的设置配置之间频繁更改,您可能更愿意将设置文件放在自定义位置。Heroku 通过MAVEN_SETTINGS_PATHconfig 变量提供此功能。

我们可以通过将现有文件移动settings.xml到support/目录中并像这样重命名来演示此功能:

mkdir -p supportgit mv settings.xml support/jboss-settings.xml

现在我们通过定义MAVEN_SETTINGS_PATH相对于根目录来告诉 Heroku 设置文件所在的位置。

heroku config:set MAVEN_SETTINGS_PATH=support/jboss-settings.xml

在测试更改之前,我们增加了 servlet-api 的版本——强制 Maven 再次下载它。更改pom.xmlto version 中的依赖项2.1.1.GA。它应该是这样的:

<dependency>  <groupId>jboss.web</groupId>  <artifactId>servlet-api</artifactId>  <version>2.1.1.GA</version></dependency>

现在将更改提交到Git,然后像这样重新部署到 Heroku:

git commit -am "moved settings file and incremented servlet-api version"git push heroku master

Maven 将再次从 JBoss 存储库下载依赖项。这提供了一些灵活性,但有时在您的项目中自定义位置是不够的。您可能希望将文件完全保留在您的代码库之外。

定义 MAVEN_SETTINGS_URL 配置变量

当MAVEN_SETTINGS_URL定义配置变量,Heroku的将下载的文件在指定的位置,并用它来配置Maven。在演示之前,我们必须取消设置我们在上一个示例中定义的变量,因为如果两个变量都设置了,它将优先:

heroku config:unset MAVEN_SETTINGS_PATH

现在,我们可以使用settings.xml来自公开可用源(例如 Torquebox Application Server 代码库)的 。像这样设置配置变量:

heroku config:set MAVEN_SETTINGS_URL="https://raw.githubusercontent.com/torquebox/torquebox/master/support/settings.xml"

和以前一样,将 servlet-api 版本增加到2.1.2.GA,添加pom.xml到 Git 存储库,提交更改并重新部署到 Heroku。Maven 将像之前一样从 JBoss 存储库下载新的工件。

JBoss 存储库很方便,因为它是公共的——不需要密码即可访问。但并非所有存储库都如此开放。

使用受密码保护的存储库

某些工件存储库需要用户名和密码才能访问。很多时候,存储库是托管内部工件的私有服务器。在这种情况下,必须在 中提供访问存储库的凭据,settings.xml如果将文件签入 Git 存储库,这可能会出现问题。

幸运的是,Maven 设置文件可以检测环境变量。表单中的任何标记${env.ENV_VAR}(其中ENV_VAR是变量的名称)都将解析为关联环境变量的值。因此,我们可以将私有 Maven 存储库的密码定义为 Heroku 配置变量,如下所示:

heroku config:set MAVEN_REPO_PASSWORD="deployment123"

然后,我们可以用我们的变量settings.xml通过创建一个文件<server>相匹配的元素<id>中的<repository>元素中<activeProfile>。

<servers>  <server>    <id>my-private-repo</id>    <username>deployment</username>    <password>${env.MAVEN_REPO_PASSWORD}</password>  </server></servers>

为了演示这一点,您将需要一个私有的Maven存储库。您可以通过下载Sonatype Nexus并按照保护存储库的说明来创建存储库。或者您可以使用JFrog Artifactory的托管版本。在任何一种情况下,都可以使用私有存储库来发布内部工件并将它们包含在您的 Heroku 应用程序中。

读到这里,这篇“怎么使用自定义Maven设置文件”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么使用自定义Maven设置文件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么使用自定义Maven设置文件

本文小编为大家详细介绍“怎么使用自定义Maven设置文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用自定义Maven设置文件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Mavensettings.x
2023-06-26

怎么使用log4j2自定义配置文件位置和文件名

本篇内容主要讲解“怎么使用log4j2自定义配置文件位置和文件名”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用log4j2自定义配置文件位置和文件名”吧!log4j2自定义配置文件位置和
2023-06-22

如何使用maven自定义插件开发

这篇文章主要介绍了如何使用maven自定义插件开发的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何使用maven自定义插件开发文章都会有所收获,下面我们一起来看看吧。Maven 插件的命名规范一般来说,我们会
2023-07-02

Win7怎么设置给图片文件自定义排序?

怎么样才能按照看图软件的排序规则呢,我们可以通过设置一下win7来改变。 1、在开始菜单搜索框里输入“gpedit.msc&rd编程quo;,或者“运行”2、打开组策略编辑器 3、依次展开“计
2023-06-11

本地Maven仓库的位置怎么自定义

这篇文章主要介绍“本地Maven仓库的位置怎么自定义”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“本地Maven仓库的位置怎么自定义”文章能帮助大家解决问题。Maven 有以下类型的存储库:本地:这
2023-06-26

Spring Boot怎么读取自定义配置文件

这篇文章给大家分享的是有关Spring Boot怎么读取自定义配置文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。@Value首先,会想到使用@Value注解,该注解只能去解析yaml文件中的简单类型,并绑定到
2023-06-15

vue怎么自定义地址设置@

这篇文章主要介绍了vue怎么自定义地址设置@,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。自定义地址设置@在vue.config.js 中配置文件const path = r
2023-06-29

SQL主键自定义怎么设置

在SQL中,可以通过以下方式自定义主键:使用CREATE TABLE语句时,在定义表结构时指定主键字段,并使用PRIMARY KEY约束来标识该字段为主键,例如:CREATE TABLE employees (id INT PRIMARY
SQL主键自定义怎么设置
2024-04-20

excel怎么设置自定义页码

这篇文章主要介绍“excel怎么设置自定义页码”,在日常操作中,相信很多人在excel怎么设置自定义页码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”excel怎么设置自定义页码”的疑惑有所帮助!接下来,请跟
2023-07-02

Android自定义控件如何在XML文件中使用自定义属性

这篇文章主要为大家介绍了Android自定义控件之如何在XML文件中使用自定义属性示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-14

Windows10怎么自定义设置3D文字屏幕保护?

Windows10-10130版系统,个性化程序里没有屏幕保护的项目,如果我们需要屏幕保护而且想在屏幕保护上自制文字,达到独特的效果,应该如何设置呢?下面介绍Windows10-10130版系统python打开屏幕保护以及在屏幕保护上自制3
2023-06-16

C#中propertygrid控件怎么自定义使用

要自定义使用C#中的PropertyGrid控件,您可以使用以下步骤:1. 创建一个Windows窗体应用程序或者一个自定义控件。2. 在窗体或控件上添加一个PropertyGrid控件。3. 要自定义PropertyGrid控件的外观,您
2023-10-10

Bpmn.js 自定义描述文件使用说明

这篇文章主要为大家介绍了Bpmn.js 自定义描述文件使用说明,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-11-13

在 MySQL 中使用 ZEROFILL 设置自定义自动增量

让我们首先创建一个表格。在这里。我们已经设置了一个带有ZEROFILL和AUTO_INCREMENT的UserId列mysql> create table DemoTable1831(UserId int(7) zerofill auto_
2023-10-22

SkyWalking自定义插件怎么用

这篇文章将为大家详细讲解有关SkyWalking自定义插件怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。RabbitMQ插件问题skywalking官方提供的RabbitMQ插件存在缺陷,其只针对R
2023-06-29

Android怎么在XML文件中自定义控件

今天小编给大家分享一下Android怎么在XML文件中自定义控件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、为什么需要
2023-07-05

java怎么通过注解加载自定义配置文件

在Java中,可以使用注解来加载自定义配置文件。具体步骤如下:1. 创建一个自定义的注解,用来标记需要加载的配置文件。```javaimport java.lang.annotation.ElementType;import java.la
2023-09-17

vue怎么自定义和使用开关组件

这篇“vue怎么自定义和使用开关组件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue怎么自定义和使用开关组件”文章吧。s
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录