IntelliJ IDEA 配合 Maven 的一些技巧(prifiles)

news2025/1/12 20:44:24

环境

  • IntelliJ IDEA 2017.1

  • Maven 3.3.9

  • Nexus 3.2.1

学习前提

  • 了解 Maven 配置的基本用法

  • 了解私有仓库,比如 nexus 的一些概念

  • 强烈建议把 Maven 的 settings.xml 文件同时放在:%USER_HOME%/.m2/settings.xml${maven.home}/conf/settings.xml 两个地方。避免使用终端的时候默认去调用用户目录下的

Maven 中的 profile

  • Maven 中有一个概念叫做:profile,它的诞生主要是为了解决不同环境所需的不同变量、配置等问题。

  • 有了 profile,可以根据激活的条件,启动不同条件下的配置信息。

  • profile 是可以有多个的,也可以同时激活多个 profile,方便自由组合。

  • profile 一般可以在三个地方:settings.xml,pom.xml,profiles.xml(这个不常用)

  • 在 settings.xml 上,一般大家用来做仓库的选择,比如以下 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">
​
    <localRepository>D:\maven\my_local_repository</localRepository>
​
    <pluginGroups>
    </pluginGroups>
​
    <proxies>
    </proxies>
​
    <profiles>
        <profile>
            <id>nexus</id>
            <repositories>
                <repository>
                    <id>nexus</id>
                    <url>http://192.168.1.73:8081/repository/maven-public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>nexus</id>
                    <url>http://192.168.1.73:8081/repository/maven-public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
        <profile>
            <id>aliyun</id>
            <repositories>
                <repository>
                    <id>aliyun</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>aliyun</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>
​
    <activeProfiles>
        <activeProfile>nexus</activeProfile>
    </activeProfiles>
​
</settings>
  • 以上代码中 profile 就做一件事:设置全局的 profile,一个是 nexus 仓库,一个是 aliyun 仓库,默认激活的是 nexus 仓库。(activeProfiles)

  • 在 pom.xml 中,一般用来激活环境配置,比如以下代码:

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <package.environment>dev</package.environment>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <build>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*</include>
                    </includes>
                    <filtering>true</filtering>
                </resource>
                <resource>
                    <directory>src/main/env/${package.environment}</directory>
                    <includes>
                        <include>**/*</include>
                    </includes>
                    <filtering>true</filtering>
                </resource>
            </resources>
            <finalName>${project.artifactId}</finalName>
        </build>
    </profile>
    <profile>
        <id>product</id>
        <properties>
            <package.environment>product</package.environment>
        </properties>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <build>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*</include>
                    </includes>
                    <filtering>true</filtering>
                </resource>
                <resource>
                    <directory>src/main/env/${package.environment}</directory>
                    <includes>
                        <include>**/*</include>
                    </includes>
                    <filtering>true</filtering>
                </resource>
            </resources>
            <finalName>${project.artifactId}</finalName>
        </build>
    </profile>
</profiles>
  • 以上代码中 profile 就做一件事:打包的时候,默认是 dev 模式,打包 src/main/env/dev 下的配置文件,如果选择 product 则打包 src/main/env/product 下的配置文件

IntelliJ IDEA 使用 Maven Profile 的案例

  • 在 IntelliJ IDEA 上调用 profile 简单,如下图勾选对应的复选框即可,可以多选。

  • 只使用 aliyun 仓库可以这样配置 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">
​
    <localRepository>D:\maven\my_local_repository</localRepository>
​
    <pluginGroups>
    </pluginGroups>
​
    <proxies>
    </proxies>
​
    <profiles>
        <profile>
            <id>aliyun</id>
            <repositories>
                <repository>
                    <id>aliyun</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>aliyun</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>
​
    <activeProfiles>
        <activeProfile>aliyun</activeProfile>
    </activeProfiles>
​
</settings>
  • 使用 nexus + aliyun 仓库可以这样配置 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">
​
    <localRepository>D:\maven\my_local_repository</localRepository>
​
    <pluginGroups>
    </pluginGroups>
​
    <proxies>
    </proxies>
​
    <profiles>
        <profile>
            <id>nexus</id>
            <repositories>
                <repository>
                    <id>nexus</id>
                    <url>http://192.168.1.73:8081/repository/maven-public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>nexus</id>
                    <url>http://192.168.1.73:8081/repository/maven-public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
        <profile>
            <id>aliyun</id>
            <repositories>
                <repository>
                    <id>aliyun</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>aliyun</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>
​
    <activeProfiles>
        <activeProfile>nexus</activeProfile>
    </activeProfiles>
​
</settings>

来源于github

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/998905.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

给 Ubuntu 操作系统配置静态 IP

针对 Ubuntu 22.04.3 操作系统的静态 IP 配置 一、查看初始的网络信息 查看网卡名称 ifconfig查看网关信息 route -n二、编辑网络配置文件 编辑文件&#xff0c;配置文件的名称可能不一样&#xff0c;自己去 /etc/netplan/ 目录查看 sudo vim /etc/netplan/01-network-manager-…

51单片机的智能台灯控制系统仿真( proteus仿真+程序+原理图+报告+讲解视频)

51单片机的红外光敏检测智能台灯控制系统仿真 1.主要功能&#xff1a;2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单&&下载链接 51单片机的红外光敏检测智能台灯控制系统仿真( proteus仿真程序原理图报告讲解视频&#xff09; 仿真图proteus7.8及以上 程…

服务器时间正确,Java程序时区不对问题解决

服务器执行date命令显示时间正确 执行timedatectl status命令结果如下&#xff1a; 看起来是Time zone没有设置好&#xff0c;但是登录另外一台正常的服务器&#xff0c;执行timedatectl status也是一样的 直接写一个简单的Java程序TestTimeZone.java&#xff1a; import ja…

consul 键值对操作命令

1. 创建或更新—>put [rootlocalhost ~]# consul kv put redis/config/connection 5 Success! Data written to: redis/config/connection[rootlocalhost ~]# consul kv put aaaaaaaaaaaa 5 Success! Data written to: aaaaaaaaaaaa /redis/config会生成两个目录&#xff…

【小吉送书—第二期】阿里后端开发:抽象建模经典案例

文章目录 0.引言1.抽象思维2.软件世界中的抽象2.1 命名抽象2.2 分层抽象2.3 原则抽象 3. 经典抽象案例3.1 方案一&#xff1a;战术抽象&#xff0c;多快好省&#xff0c;跑步前进3.2 方案二&#xff1a;深入分析&#xff0c;透过表象&#xff0c;探寻本质 5. 推荐一本书&#x…

基于奇偶模的跨线桥(crossover)分析

文章目录 1、ADS建模2、奇偶模分析2.1 Port1→Port2传输特性2.1.1奇模分析2.1.2偶模分析 2.2 Port1→Port4传输特性 附&#xff1a;正交混合网络的奇偶模分析1、 Port1→Port21.1奇模分析1.2Port1→Port2偶模分析1.3 奇模传输与偶模传输相位关系![在这里插入图片描述](https://…

鸿蒙开发实例 |搭建环境

2019年8月9日&#xff0c;华为在东莞举行华为开发者大会&#xff0c;正式发布鸿蒙操作系统&#xff1b;2020年9月推出了鸿蒙2.0&#xff0c;全面使能全场景生态&#xff0c;具备跨设备、服务流转、极速直达、可视可说、隐私安全五大能力。在2021年6月2日的华为新品发布会中&…

ChatGPT很好,但别想着用来写留学申请文书!

大家必须承认一件事&#xff0c;大多数申请者和 ChatGPT 相比&#xff0c;ChatGPT 产出的文章质量更高—— ChatGPT语言更精准 ChatGPT文章结构更严谨 ChatGPT行文更流畅 …… 但是为什么仍然不建议大家利用人工智能来撰写申请文书呢&#xff1f; 文书至关重要——比大…

IntelliJ IDEA 配合 Maven 的一些技巧(profiles)

IntelliJ IDEA 配合 Maven 的一些技巧 环境 IntelliJ IDEA 2017.1 Maven 3.3.9 Nexus 3.2.1 ## 学习前提 了解 Maven 配置的基本用法 了解私有仓库&#xff0c;比如 nexus 的一些概念 强烈建议把 Maven 的 settings.xml 文件同时放在&#xff1a;%USER_HOME%/.m2/settin…

IDEA中DEBUG技巧

Debug 介绍 Debug 设置 如上图标注 1 所示&#xff0c;表示设置 Debug 连接方式&#xff0c;默认是 Socket。Shared memory 是 Windows 特有的一个属性&#xff0c;一般在 Windows 系统下建议使用此设置&#xff0c;相对于 Socket 会快点。 ## Debug 常用快捷键 Win 快捷键M…

初高(重要的是高中)中数学知识点综合(持续更新)

1. 集合 1.1 集合的由来和确定性 确定对象构成的整体称为集合&#xff08;组成集合的元素必须是确定的 &#xff09;&#xff0c;每个集合内的对象个体成为元素(Element)。确定性&#xff1a; 给定一个集合&#xff0c;任何一个对象是不是这个集合内的元素&#xff0c;就已经确…

港联证券股票分析:经济拐点显现 积极提升仓位

港联证券指出&#xff0c;商场底部上升的方向不变&#xff0c;当时稳增加和活跃资本商场的活跃方针仍在持续落地&#xff0c;一起也看到了一些经济数据边沿企稳的迹象&#xff0c;跟着方针作用的进一步闪现&#xff0c;商场情绪有望持续好转&#xff0c;上市公司基本面也有望得…

vue+element使用阿里的图标库保存图标

阿里图标网站iconfont-阿里巴巴矢量图标库 我想使用保存图标&#xff0c;但是element的图标库没有找到可用的&#xff0c;首先在阿里的图标网站搜索保存 发现这个还不错 点击添加入库 点击购物车 点击添加至项目 点击下载到本地 把下载的压缩包里面的文件拖到自己项目里面 在m…

ICCV 2023 | SuS-X:仅靠类别名称微调CLIP模型,剑桥大学联合DeepMind出品

论文链接&#xff1a; https://arxiv.org/abs/2211.16198 代码仓库&#xff1a; https://github.com/vishaal27/SuS-X 对比语言图像预训练&#xff08;Contrastive Language-Image Pre-training&#xff0c;CLIP&#xff09; 已成为计算机视觉社区通向自然语言领域的一种常用的…

mp4视频太大怎么发送?这样压缩视频就对了

随着科技的发展&#xff0c;视频格式多种多样&#xff0c;其中mp4格式因为其通用性而广受欢迎。然而&#xff0c;有时候我们会遇到一个问题&#xff1a;mp4视频文件太大&#xff0c;导致发送变得困难。那么&#xff0c;如何解决这个问题呢&#xff1f;下面就给大家分享几个实用…

【易盾点选】

拿官网的点选做个例子吧&#xff0c;比较省事&#xff0c;水一篇~ ​ 官网的接口目前都改成V3了&#xff0c;多了个dt参数&#xff0c;以及加密的一个函数也变动了下 点选坐标在这&#xff0c;加密函数未变&#xff0c;用逗号拼接 整个加密里的函数变了&#xff0c;直接重新…

live555-lastest 编译

1. live555-latest 源码下载&#xff1a;http://www.live555.com/ 2. 将下载的live-latest.tar.gz放到指定目录下解压&#xff1a;tar -xvf live-latest.tar.gz&#xff0c;cd 进入live目录&#xff0c;在live目录下有很多config.xxxx的相关配置文件&#xff0c;config.linux默…

什么是Vercel?

Vercel 是一个云平台&#xff0c;用于构建、部署和扩展无服务器应用程序和静态网站。由于其易用性、速度和处理大量流量的能力&#xff0c;它在开发人员中越来越受欢迎。 使用 Vercel&#xff0c;您可以使用各种编程语言和框架构建和部署应用程序&#xff0c;并利用自动 SSL、…

使用vue3.0实现一些动画效果

一&#xff0c; 动画效果&#xff1a; 1&#xff0c;横屏滚动 2&#xff0c;根据横屏滚动的距离&#xff0c;左侧文本缩小放大 3&#xff0c;鼠标悬浮单张图片时根据悬浮位置发生倾斜效果 横屏滚动函数&#xff1a; function handlerMouserScroll(event) { //鼠标滑动list…

【校招VIP】产品思维考察之用户体验

考点介绍&#xff1a; 在设计产品的功能点时&#xff0c;我们需要设想我们的用户到底是谁&#xff1f;他的需求是什么&#xff1f; 为此我们需要做用户分析&#xff0c;从而得出我们的用户画像&#xff0c;提供解决方案。用户调研是用户分析的一种方法&#xff0c;用户画像是结…