maven(16)-灵活的环境构建

走进JavaWeb技术世界12:从手动编译打包到项目构建工具Maven 本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star哈 文章首发于我的个人博客: www.how2playlife.com 本文是微信公众号【Java技术江湖】的《走进JavaWeb技术世界》其中一篇,本文部分内容来源于网络,为了把本文主题... 阅读详情

多个环境

一个项目,在家的时候可能会在本机上运行,在公司可能在内网测试环境运行,上线后会在生产环境运行,在不同的环境中会有一些配置是不一样的,至少数据库就不一样。如果每换一个环境就去改所有配置太过于麻烦,以下方法就是通过一个参数灵活的切换不同的环境


项目结构


pom.xml

	<profiles>
		<profile>
			<id>dev</id>
			<properties>
				<env>dev</env>
			</properties>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>test</id>
			<properties>
				<env>test</env>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
	</profiles>

	<build>
		<filters>
			<filter>filters/${env}.properties</filter>
		</filters>
		<resources>
			<resource> 
				<directory>src/main/resources</directory>
				<filtering>true</filtering> 
			</resource>
		</resources>
	</build>

<profiles>:就是properties文件,通过加载不同的profile来区别不同的环境

<activeByDefault>:true代表当前激活的配置,false代表未激活,如果要切换环境只需要修改true和false,执行maven-update

<filter>:通过激活的profile中的<env>内容来加载filters目录下的不同的properties,自动过滤不同的环境

<filtering>:true就是用filters/${env}.properties的参数值来过滤src/main/resources中的properties文件,之后详解


Test.java

import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Properties;

import org.springframework.stereotype.Component;

@Component
public class Test {
	static {
		Properties prop = new Properties();
		InputStreamReader in = null;
		try {
			in = new InputStreamReader(Test.class.getClassLoader().getResourceAsStream("aaa.properties"), "UTF-8");
			prop.load(in);
			System.out.println(prop.getProperty("aaa"));
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				in.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

这是一个最基本的静态块,在项目启动的时候,读取aaa.properties文件中的参数aaa的值。需要配置spring自动扫描注解


properties

aaa.properties

aaa=${aaa}
这个aaa没有配一个固定参数值,而是用的${aaa},表示根据当前环境的不同过滤不同的值


dev.properties

aaa=bbb
dev就是当前激活的开发环境,这里的aaa就是要过滤替代${aaa}的值。在测试环境test.properties中可以设置不同的值


运行项目

如图,实际加载的aaa参数的值是dev.properties而不是aaa.properties





VS Code配置Java开发环境:从JDK 17安装到Maven项目实战 Java开发环境配置是每位开发者入门的必经之路,其核心在于正确安装和配置Java开发工具包(JDK)。JDK作为Java生态的基石,包含了编译器、运行时环境和基础类库,其版本选择直接影响项目的兼容性与性能。当前,长期支持(LTS)版本如JDK 17因其稳定性和现代语言特性,已成为企业级应用和新项目的首选,有效规避了潜在的版本兼容性问题。在工程实践中,高效的开发离不开强大的集成开发环境(IDE)。Visual Studio Code(VS Code)作为一款轻量级且高度可扩展的编辑器,通过安装官方Java扩展 阅读详情

相关推荐

LT9611EX芯片实战:如何用双端口MIPI转HDMI1.4打造高清播放器(附配置代码)

本文详细介绍了如何使用龙迅半导体的LT9611EX芯片实现双端口MIPI转HDMI1.4的高清播放器开发。内容涵盖芯片特性、硬件设计要点、寄存器配置技巧及完整代码实现,特别适合嵌入式视频处理应用,如机顶盒和便携式媒体播放器。

weixin_29256771的博客 322

Maven项目配置pom.xml 指定JDK版本和编码

文件,开发者可以确保他们的Maven项目在指定的JDK版本上编译,并使用统一的字符编码。随着项目的发展,这种配置方式也提供了灵活性,允许开发者根据需要轻松地更新JDK版本和编码设置。在多人协作的项目中,统一的字符编码设置是非常重要的。不同的操作系统和开发环境可能默认使用不同的编码,这可能导致代码在不同环境下的表现不一致。这样做的主要目的是确保代码在预定的Java环境中编译和执行,避免因版本差异带来的问题。通过这种方式,Maven将在整个构建过程中使用UTF-8编码,从而确保编码的一致性。

AloneMou的博客 6468

SAP FICO 消息号 FAA_POST042 技术清算科目中的余额:分类账 0L,货币 00、RMB、10000.00-

SAP FICO 消息号 FAA_POST042 技术清算科目中的余额:分类账 0L,货币 00、RMB、10000.00-

我好像病了的博客 2142

Maven: 为Compiler插件设置source和target版本

问题描述Eclipse Kepler Service Release 2, JDK 1.7开发环境, m2e 1.4.1环境,缺省pom.xml配置文件下,Eclipse告警:Dynamic Web Module 3.0 requires Java 1.6 or newer. struts01 line 1 Maven Java EE Configu...

weixin_33757911的博客 1157

【音视频处理】MP4、FLV、HLS适用范围,在线视频播放哪个更好

本期我们讨论在线点播的视频格式,对比这些视频格式的优劣以及原因 1、封装格式的作用 2、MP4 3、FLV 4、HLS

池鱼 - YiiGaa 2万+

Agentic RAG:RAG从静态到具有理解、推理、决策的Agentic RAG

RAG技术演进:从静态检索到智能代理 RAG(检索增强生成)技术经历了五个关键发展阶段:基础RAG(关键词检索)、高级RAG(语义理解)、模块化RAG(灵活架构)、图RAG(知识图谱)和最新的Agentic RAG(智能代理)。Agentic RAG通过引入自主AI代理,具备反思、规划、工具使用和多代理协作能力,实现了动态决策和自适应工作流。相比传统RAG的静态检索流程,Agentic RAG能处理复杂多步推理任务,通过自我改进机制提高输出质量,并支持多专业代理协作,显著提升了RAG系统在复杂场景下的表现。

2548

maven maven.compiler.source和maven.compiler.target的坑

最近建议产品组把jdk 1.7升级到1.8,昨晚开发报了个问题过来,说maven.compiler.source和maven.compiler.target改成1.8之后,编译出来的代码还是1.7,如下: 也可通过javap -v ServiceImpl.class 查看class文件的java编译版本号。 下午抽空看了下,果不其然,第一怀疑就是maven.compiler.source和mav...

weixin_34062329的博客 9910

ppt保存时嵌入字体,但找不到字体使用的位置的解决办法

摘要 当PPT提示无法保存嵌入字体时,可通过VBA代码快速定位使用该字体的文本。具体步骤如下: 按ALT+F11打开VBA编辑器,新建模块并粘贴提供的代码; 运行代码后输入目标字体名称(如“方正兰亭黑简体”); 程序将列出所有使用该字体的幻灯片编号及对应文本内容; 修改这些文本的字体即可解决保存问题。该方法高效精准,适用于排查PPT字体嵌入失败的情况。(150字)

智慧空间实验室 1405

Maven之Java编译器-source和-target参数

<project> [...] <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> [...] </project>或者(PS:这种方法配置好像没有生效)<proj

helloworld的专栏 5767

激光打标轴坐标计算分析

‌:基于坐标差的平方和开方运算,勾股定理将几何关系转化为代数计算,从而实现了从坐标到距离的精确转换‌12。直角三角形的应用从上图可以看到A,B,P三个点连起来就是一个直角三角形了。用勾股定理计算距离 C#有相关的方法直接传参数就可以了。很方便。

StevenChen的博客 312

学Simulink——基于Simulink的Buck-Boost变换器双闭环PI+抗饱和设计建模示例

本文详细介绍了基于Simulink的非反相Buck-Boost变换器双闭环控制设计方法。针对Buck-Boost变换器特有的右半平面零点(RHPZ)和控制挑战,提出了电压-电流双闭环PI控制架构,并集成抗积分饱和机制。通过Simulink建模,实现了主电路、电流内环PI、电压外环PI、PWM及占空比限幅等模块的搭建,验证了在输入电压跌落(20V→10V)和负载突变(2A→4A)等场景下的稳定性能。仿真结果表明,输出电压波动小于0.35V,恢复时间快于1ms,电感电流有效限幅。文章还讨论了工程实践要点和扩展方

xiaoheshang_123的博客 318

Java Web 16_Maven

这里写目录标题maven的配置:maven的生命周期:概念模型图: maven的配置: 将D:\javaJDK\maven\apache-maven-3.5.2-bin\apache-maven-3.5.2\conf下的settings文件的配置文件添加本地仓库的jar包的位置。 <localRepository>D:\javaJDK\maven\maven_repository</localRepository> 1.Maven home directory添加maven的目录

m0_45178181的博客 500

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Nexus-3.16x版本构建Maven私有仓库的使用

之前文章已经对Nexus-3.16x版本如何搭建局域网内的私有仓库做了说明,这篇文章我们主要介绍关于如何使用我们的私有仓库以及可能遇到的一些问题。 Windows环境下使用Nexus-3.16x版本构建Maven私有仓库 一、环境 系统环境:Windows10 JDK版本:1.8.0_11 Maven版本:3.3.9 Nexus版本:3.16.0-01 IDE版本...

北辰之北灬的博客 722

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Maven入门(含实例教程)

Maven这个个项目管理和构建自动化工具,越来越多的开发人员使用它来管理项目中的jar包。接下来小宝鸽,将从下面几个方向介绍maven:(1)Maven简单介绍 (2)Maven安装与配置 (3)Maven携手eclipse构建项目 (4)Maven的常用命令 (5)Maven实例猿友门抓紧了,马上起飞了:(1)Maven的简单介绍Maven这个个项目管理和构建自动化工具,越来越多的开发人员

小宝鸽 8万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

maven学习利用Profile构建不同环境的部署包

项目开发好以后,通常要在多个环境部署,象我们公司多达5种环境:本机环境(local)、(开发小组内自测的)开发环境(dev)、(提供给测试团队的)测试环境(test)、预发布环境(pre)、正式生产环境(prod),每种环境都有各自的配置参数,比如:数据库连接、远程调用的ws地址等等。如果每个环境build前手动修改这些参数,显然太不fashion. maven早就考虑到了这些问题,看...

dh3939的博客 101

springboot + vue 搭建使用maven+ant构建

springboot + vue 前后端分离项目搭建

qq_26700087的博客 1707

TanStack Query Angular 入门:从 QueryClient 注入到 injectQuery / injectMutation 的完整实战

本文基于 TanStack Query 仓库中 Angular 框架的快速上手文档,带你完成 `@tanstack/angular-query-experimental` 从 `QueryClient` 提供者配置,到 `injectQuery`、`injectMutation` 信号式数据获取的完整落地流程,并结合仓库源码解析 `provideTanStackQuery` 内部的注入器生命周期管

gitblog_00923的博客 508

maven 根据profile,resources,filters来区分部署环境

项目过程中,在不同的阶段,分别需要部署开发环境,测试环境,线上环境。如果都用一套配置文件,很容易弄乱,所以维持多套配置文件很有必要。 maven提供了一组属性以供开发人员灵活搭配,可以根据环境来打包,比如测试环境:mvn package -DskipTests -P test,-P也就是指定profile里面id为test的子项配置来打包。在pom文件里面,可以指定多套配置文件,下面例子中区分了三套配置文件,不指定-P则默认为dev。其中的env相当于属性文件中的env=test,也可以多指定多个...

1 780

maven利用Profile构建不同环境的部署包

接上回继续,项目开发好以后,通常要在多个环境部署,象我们公司多达5种环境:本机环境(local)、(开发小组内自测的)开发环境(dev)、(提供给测试团队的)测试环境(test)、预发布环境(pre)、正式生产环境(prod),每种环境都有各自的配置参数,比如:数据库连接、远程调用的ws地址等等。如果每个环境build前手动修改这些参数,显然太不fashion. maven早就考虑到了这些问

刘客青的博客 419

maven学习(下)利用Profile构建不同环境的部署包

源自:http://www.cnblogs.com/yjmyzz/p/3941043.html 接上回继续,项目开发好以后,通常要在多个环境部署,象我们公司多达5种环境:本机环境(local)、(开发小组内自测的)开发环境(dev)、(提供给测试团队的)测试环境(test)、预发布环境(pre)、正式生产环境(prod),每种环境都有各自的配置参数,比如:数据库连接、远程调用的w

gaoshanliushui2009的专栏 906

Maven 4重构解析:提升构建效率与云原生适配

Maven作为Java生态中广泛使用的构建工具,其核心架构在现代软件开发中面临多模块构建效率、云原生适配等挑战。Maven 4通过重构依赖解析引擎、解耦构建生命周期及引入新的构建描述文件格式,显著提升了构建速度和扩展性。依赖管理方面,Maven 4支持并行化下载和智能本地缓存,有效减少CI/CD流水线耗时。构建流水线重构后,基于DAG的并行调度和模块化ClassLoader进一步优化了资源利用。这些改进使得Maven 4在大型项目和云原生环境中表现更佳,为开发者提供了更高效的构建体验。

weixin_33894640的博客 453

MAVEN 属性

MAVEN pom文件中可以使用 ${} 引用键值对属性,MAVEN的属性主要包括以下几类 内置属性 XML标签属性 pom.xml 标签属性 settings.xml 标签属性 环境变量属性 Java系统属性,通过JAVA代码 System.getProperties() 获得的所有属性 操作系统的环境变量 POM文件中自定义的Properties属性 1. 内置属性(Maven预定义,用户可以直接使用) 内置属性值 属性描述 basedir 表示项目根目录,即包含pom.

weixin_43740223的博客 1402

Maven常用的构建命令

Maven常用命令: Maven库: http://repo2.maven.org/maven2/ Maven依赖查询: http://mvnrepository.com/ 一,Maven常用命令: 1. 创建Maven的普通Java项目: mvn archetype:create -DgroupId=packageName -Dartifact...

weixin_30577801的博客 119
上一篇: maven(15),快照与发布,RELEASE与SNAPSHOT
下一篇: maven(17)-自动发布到远程linux服务器
free_java
博客等级 码龄10年 664粉丝 131原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值