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

news2025/1/12 23:15:12

IntelliJ IDEA 配合 Maven 的一些技巧

环境

  • 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/998893.html

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

相关文章

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;用户画像是结…

ESV1-8-C、ESV1-8-O、ESV1-10-C、ESV1-10-O插装式比例流量阀放大器

比例减压阀 EPPD2_2A、EPRV1-16、EPRV2-8 比例流量阀 EFV1-10-C、EFV1-10-O、EFV1-12-C、EFV1-12-O、EFV2-12-C、EFV2-12-O、EPV16A、EPV16B、ESV1-8-C、ESV1-8-O、ESV1-10-C、ESV1-10-O、ESV1-12-C、ESV1-12-O 比例流量阀 双油口压力补偿阀 EPFR14A、EPFR24A 比例溢流阀…

SwiftUI 5.0(iOS 17)TipKit 让用户更懂你的 App

概览 作为我们秃头开发者来说&#xff0c;写出一款创意炸裂的 App 还不足以吸引用户眼球&#xff0c;更重要的是如何让用户用最短的时间掌握我们 App 的使用技巧。 从 iOS 17 开始&#xff0c; 推出了全新的 TipKit 框架专注于此事。有了它&#xff0c;我们再也不用自己写 A…

Linux系统编程-C++ I/O库

文章目录 一、 总述二、输出缓冲三、文件输入输出四、string流五、输入输出格式总述1、控制布尔值的格式2、指定整型值的进制3、在输出中指出进制4、控制浮点数格式4.1、 指定打印精度5、输出空白 六、未格式化的输入输出操作 一、 总述 C使用标准库类来处理面向流的输入和输出…

Linux之shell条件测试

目录 作用 基本用法 格式&#xff1a; 案例 -f 用法 [ ] 用法 [[]] 用法 (()) 语法 文件测试 参数 案例 编写脚本&#xff0c;测试文件是否存在&#xff0c;不存在则创建 整数测试 作用 操作符 案例 系统用户个数小于50的则输出信息 逻辑操作符 符号 案例 …

Spring----IOC、注解

目录 一、简介 二、spring的组成及拓展 spring七大模块 核心容器(Spring core) Spring上下文(Spring context) Spring面向切面编程(Spring AOP) Spring DAO模块 Spring ORM模块 Spring Web模块 Spring MVC框架(Spring WebMVC) 拓展 三、IOC理论 IOC本质 Hello S…

11.(Python数模)(预测模型三)多元线性回归预测

多元线性回归 简介 多元线性回归使用在自变量和因变量有逻辑相关性的情况中。在实际应用中&#xff0c;多元线性回归经常用于探索和解释变量之间的复杂关系&#xff0c;例如经济学、社会科学和自然科学等领域。它提供了一种统计工具来分析多个自变量对因变量的影响&#xff0…

Windows下使用source insight连接远程Linux机器写代码

命令总结 基本会用到的命令都在这里了&#xff0c;流程里面就不加命令了&#xff0c;自行看表格 流程 linux安装 samba&#xff0c;并确认版本&#xff0c;确认samba服务运行状态配置samba用户配置samba的配置文件 在文件最后增加 示例如下&#xff1a; security user [pub…

大模型参数高效微调PEFT的理解和应用

简介 近年的大型语言模型&#xff08;也被称作基础模型&#xff09;&#xff0c;大多是采用大量资料数据和庞大模型参数训练的结果&#xff0c;比如常见的ChatGPT3有175B的模型参数量。随着Large Language Model(LLM)的横空出世&#xff0c;网络模型对常见问题的解答有了很强的…

分享大数据分析培训就业班课程内容

随着国家重视大数据&#xff0c;政府扶持大数据&#xff0c;大数据在企业中生根发芽根据人社部发布的《新职业--大数据工程技术人员就业景气现状分析报告》预计&#xff0c;未来5年&#xff0c;大数据行业的人才需求将保持30%-40%的增速&#xff0c;人才缺口总量将达到2000万人…