【maven】通过profiles实现:怎样激活某个仓库、同时加载多个profile、不同环境加载不同依赖jar

这篇具有很好参考价值的文章主要介绍了【maven】通过profiles实现:怎样激活某个仓库、同时加载多个profile、不同环境加载不同依赖jar。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Maven中的profile是一组可选的配置,可以用来设置或者覆盖配置默认值。有了profile,你就可以为不同的环境定制构建。

一. 基本用法

profile可以在pom.xml中和maven的setting.xml文件中配置,如下:

<settings>
  <profiles>
    <profile>
      <id>nexus</id>
      <repositories>
        <repository>
          <id>my-repo</id>
          <url>https://example.com/maven-repo</url>
        </repository>
      </repositories>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>nexus</activeProfile>
  </activeProfiles>
</settings>

在上述示例中,我们定义了一个名为"nexus"的profile,并在其中设置了一个名为"my-repo"的Maven仓库。该仓库的URL为"https://example.com/maven-repo"。
 

仓库激活:

通过将activeProfile元素设置为"nexus",我们激活了这个profile,这意味着Maven会在解析和下载依赖项时搜索并使用该仓库。

 

二. 仓库激活方式

1. 使用activeProfile激活

如上,通过activeProfile标签进行激活,比如在使用idea进行项目打包时,会使用对应id的仓库进行依赖下载

  <activeProfiles>
    <activeProfile>nexus</activeProfile>
  </activeProfiles>

如下图:idea中也能看到我们添加和激活的profile,

当然我们可以激活多个profile,对于idea来说同时选中你想要的profile就行
【maven】通过profiles实现:怎样激活某个仓库、同时加载多个profile、不同环境加载不同依赖jar,maven,maven,jar,java

 

2. 使用-P参数激活

可以通过使用-P参数显示的指定当前激活的profile。

同时也可以指定多个profile,profile之间用逗号隔开

mvn clean install -Pnexus
mvn clean install -P nexus
mvn clean install -Pnexus,rat

 

3. 使用-P参数不激活

当项目使用settings.xml中激活的profile,但是在某些场景下又不想它处于激活状态。

mvn clean install -P !rat

 

三. 查看激活的仓库

在某一个项目下执行,比如我在linkis这个项目的父级目录下执行

mvn help:active-profiles

得到如下结果

每个模块都会展示激活的profile,这里看到的是linkis-dist模块下激活的profile

。。。
Active Profiles for Project 'org.apache.linkis:linkis-dist:pom:1.3.2':

The following profiles are active:

 - nexus (source: external)

 

四. 不同环境依赖不同版本的jar

通过profile可以解决,在项目开发中例如:生产环境依赖的hadoop版本是2.7.2U1,poc环境依赖的hadoop版本是官方的2.7.2版本。

<project ... >
	<properties>
	    <hadoop.version>1.0.0.RELEASE</hadoop.version>
	</properties>
	<dependencies>
        <groupId>org.apache.hadoop</groupId>
  		<artifactId>hadoop-mapreduce-client-core</artifactId>
        <version>2.7.2U1</version>
	</dependencies>
	<profiles>
    	<profile>
        	<id>test</id>
        	<properties>
            	<hadoop.version>2.7.2</hadoop.version>
        	</properties>
        	<!-- 激活这个profile 会额外加载这个插件>
			<plugins>
    			<plugin>
        			<groupId>org.apache.maven.plugins</groupId>
        			<artifactId>maven-source-plugin</artifactId>
        			<version>2.2.1</version>
        			<executions>
            			<execution>
                			<phase>package</phase>
                			<goals>
                    			<goal>jar-no-fork</goal>
                			</goals>
            			</execution>
        			</executions>
    			</plugin>
			</plugins>
    	</profile>
	</profiles>
</project>

 
 

注意:

如果你使用了镜像设置,Maven会首先尝试从镜像仓库下载依赖项。如果镜像仓库中没有所需的依赖项,则会根据配置的repositories元素查找其他仓库。
 
通过配置profiles和repositories元素,你可以根据项目的要求加载特定的仓库,并控制Maven从哪里获取依赖项。

 

参考:
https://blog.csdn.net/Mr_rain/article/details/100138017
chat-gpt3.5文章来源地址https://www.toymoban.com/news/detail-641644.html

到了这里,关于【maven】通过profiles实现:怎样激活某个仓库、同时加载多个profile、不同环境加载不同依赖jar的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot之一:配置文件(内外部配置优先顺序+properties、xml、yaml基础语法+profile动态切换配置、激活方式)

    Spring Boot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置。 注意配置文件的命名必须是application开头。 在同一级目录下优先级为:properties yml yaml file:../config/ :当前项目

    2024年02月10日
    浏览(39)
  • 怎样通过本地电脑搭建SFTP服务器,并实现公网访问?

    1.1 下载 freesshd 服务器软件 下载地址:freeSSHd and freeFTPd 选择freeFTPD.exe下载 下载后,点击安装 安装之后,它会提示是否启动后台服务,Yes 安装后,点击开始菜单– freeFTPd, 注意 :这里要点击鼠标右键, 以管理员权限 打开freeFTPd,如果以普通用户打开freeFTPd, 将无法保存配置

    2024年02月12日
    浏览(49)
  • 万字解读|怎样激活 TDengine 最高性价比?

    不知不觉间,TDengine 已经 6 岁多了。在这 6 年多的时间里,我们从零开始,在一行又一行代码的淬炼下,TDengine 从 1.6 走过 2.0,终于走到如今的 3.0 时代。 自 2022 年下旬发布以来,经过我们不断地打磨优化之后,TDengine 3.0 在性能、功能、稳定性各个方面均有大幅提升,已经

    2024年02月07日
    浏览(35)
  • 怎样通过Python和齐次坐标变换方法实现坐标系之间的转换?

    齐次坐标变换是一种用于实现坐标系之间变换的数学技术。它通常用于计算机图形学、计算机视觉和机器人技术。在齐次坐标系中,3D点/顶点由4D向量(x,y,z,w)表示,其中w是比例因子。齐次表示允许有效的矩阵运算并简化变换过程。坐标系之间的变换可以通过使用齐次变

    2024年02月05日
    浏览(36)
  • 私有仓库工具Nexus Maven如何部署并实现远程访问管理界面

    Nexus是一个仓库管理工具,用于管理和组织软件构建过程中的依赖项和构件。它与Maven密切相关,可以作为Maven仓库的服务器。Nexus提供了一个集中式的位置,用于存储和共享构件,使团队成员能够方便地访问和部署这些构件。 Cpolar内网穿透是一种安全的内网穿透云服务,可以

    2024年01月18日
    浏览(35)
  • 视频列表:点击某个视频进行播放,其余视频全部暂停(同时只播放一个视频)

    视频列表:点击某个视频进行播放,其余视频全部暂停( 同时只播放一个视频 ) 在 video 标签添加 自定义属性 id (必须唯一) 给每个 video 标签 添加 play 视频播放事件 播放视频时,触发 play 事件,通过添加的自定义属性 id 判断,将 非当前播放视频都暂停

    2024年02月06日
    浏览(26)
  • SpringBoot 通过@Profile注解配置多环境

    参考资料 Springboot中的@Profile注解 在Spring中,可以使用 配置文件 的方式来指定不同环境下所需要的配置信息 ⏹application.yml ⏹application-dev.yml ⏹application-product.yml 但有时候,我们不通过配置文件,而是通过配置类的方式来指定不同环境下的配置信息, 此时就需要用到 @Profile注

    2024年02月09日
    浏览(26)
  • 在linux中怎样同时运行三个微服务保证退出时不会终止

    前言 1.maven中打jar包 使用插件打包,必须在pom.xml中添加插件,否则不能在linux中编译运行 2.将在maven中打包好的文件存放在linux的指定目录中 3.使用命令启动jar包,同时创建记录日志的文件 (在此使用三个微服务为例),只需更换为自己的jar包名称 shop-gateway.jar, shop-order-server.jar, shop

    2024年02月14日
    浏览(28)
  • 22、springboot的Profile(通过yml配置文件配置 profile,快速切换项目的开发环境)

    就是通过 配置的 profile 快速切换开发环境。 ▲ 1. 声明Profile ▲ 2. 设置活动Profile 演示如何通过profile配置文件,来快速切换开发环境。 步骤: 1、 添加一个正式环境用的yml----application-dev.yml,写对应的正式环境配置 添加一个测试环境用的yml----application-test.yml,写对应的测试环

    2024年02月02日
    浏览(33)
  • microsoft.office.interop.word 怎样 读取 某个汉字 字体颜色为红色

    SKY[管理]筱傑 @SKY[机器]筱淋 microsoft.office.interop.word 怎样 读取 某个汉字 字体颜色为红色呢? 要读取某个汉字的字体颜色是否为红色,您可以使用Microsoft.Office.Interop.Word来进行操作。以下是一个示例代码,可以帮助您实现该功能: 请注意,您需要替换\\\"your_document_path.docx\\\"为您要

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包