`

maven使用profile设置多个环节不同配置

阅读更多
在pom文件中设置profiles节点
	<profiles>
		<profile>
			<!-- 本地开发环境 -->
			<id>dev</id>
			<activation>
			<!-- <activeByDefault>true</activeByDefault>  -->
				<property>
					<name>env</name>
					<value>dev</value>
				</property>
			</activation>
			<properties>
				<profiles.active>dev</profiles.active>
			</properties>
		</profile>
		<profile>
			<id>sit</id>
			<activation>
				
				<property>
					<name>env</name>
					<value>sit</value>
				</property>
			</activation>
			<properties>
				<profiles.active>sit</profiles.active>
			</properties>
		</profile>

		<profile>
			<id>uat</id>
			<activation>
				<property>
					<name>env</name>
					<value>uat</value>
				</property>
			</activation>
			<properties>
				<profiles.active>uat</profiles.active>
			</properties>
		</profile>

		<profile>
			<!-- 生产环境 -->
			<id>prd</id>
			<properties>
				<profiles.active>prd</profiles.active>
			</properties>
		</profile>

	</profiles>
maven打包支持profile环境来替换不同环境的配置文件(xml配置文件和properties配置文件)
	<plugin>
				<artifactId>maven-resources-plugin</artifactId>
				<executions>
					<execution>
						<id>copy-active-profile-resources</id>
						<phase>process-resources</phase>
						<goals>
							<goal>copy-resources</goal>
						</goals>
						<configuration>
							<outputDirectory>${basedir}/target/classes</outputDirectory>
							<resources>
								<resource>
									<directory>${project.basedir}/profiles/${profiles.active}</directory>
									<filtering>false</filtering>
								</resource>
							</resources>
							<overwrite>true</overwrite>
						</configuration>
					</execution>	
				</executions>
			</plugin>

 

1:在项目中配置profile文件夹,此文件夹下再配置dev,sit,uat文件夹,分别放对应的配置文件

2:使用maven命令进行不同配置文件的,在eclipse中配置 clean install -Dmaven.test.skip=true  -P  dev,在maven中使用 mvn clean install -Dmaven.test.skip=true  -P  dev 

如果需要上传到私服nexus中,遇到401错误,并且在maven的安装路径下面的setting配置文件的server节点中需要配置id为Releases和Snapshots的用户名和密码。

	<distributionManagement>
		<repository>
			<id>Releases</id>
			<name>Team Nexus Release Repository</name>
			<url>http://xxxx:7001/nexus/content/repositories/releases/</url>
		</repository>
		<snapshotRepository>
			<id>Snapshots</id>
			<name>Team Nexus Snapshot Repository</name>
			<url>http://xxxx:7001/nexus/content/repositories/snapshots/</url>
			<uniqueVersion>true</uniqueVersion> 
		</snapshotRepository>
	</distributionManagement>

    <server>
           <id>Releases</id>
              <username>xxx</username>
            <password>xxx</password>
          </server>
<server>
			<id>Snapshots</id>
			<username>xxx</username>
            <password>xxxx</password>
</server>

 

3:使用maven插件maven-compiler-plugin设置编码的jdk版本,及编码格式

<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.1</version>
				<configuration>
					<source>${jdk.version}</source>
					<target>${jdk.version}</target>
					<encoding>${project.build.sourceEncoding}</encoding>
				</configuration>
			</plugin>

 4:也可设置maven的安装目录下面的setting.conf中设置JDK的版本

 

<profile>
			<id>jdk8</id>
			 <activation>
				  <activeByDefault>true</activeByDefault>
				  <jdk>1.8</jdk>
			 </activation>
			 <properties>
				  <maven.compiler.source>1.8</maven.compiler.source>
				  <maven.compiler.target>1.8</maven.compiler.target>
				  <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
			 </properties> 
		</profile>

5:使用maven插件maven-war-plugin打war包

<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<configuration>
					<!--本地的db配置与迁移不需要在test,sit,uat,prd环境的容器中部署 -->
					<packagingExcludes>WEB-INF/classes/config/**</packagingExcludes>
				</configuration>
				<version>2.4</version>
			</plugin>

 6:获取本地命令行生效的maven配置文件:

mvn help:effective-settings

7:maven命令行进行远程部署私服

mvn deploy:deploy-file -Dfile=.\target\xxxx.jar Dpackaging=jar -Durl=http://xxxx:7001/nexus/content/repositories/snapshots  -DgroupId=com.xxx -DartifactId=xxx -Dversion=0.0.1-SNAPSHOT

分享到:
评论

相关推荐

    08Maven使用手册.zip

    对于包含多个子项目的大型工程,Maven的聚合项目功能可以将它们组织在一起,便于统一管理和构建。 ### 11. Maven的持续集成 Maven与各种持续集成工具(如Jenkins、GitLab CI/CD等)兼容良好,可以方便地集成到自动...

    maven 一键打包

    但在一键打包时,如果项目有多个环境(如开发、测试、生产),可能需要根据不同的环境配置文件。此时,可以通过Maven的profile功能,定义不同环境的配置,并在打包时选择相应的profile。 ### Maven profile Profile...

    Maven下载安装及其配置-maven下载安装配置

    它通过使用项目对象模型(Project Object Model, POM),能够自动化地完成项目的构建、测试及部署等多个环节。 #### Maven 工程目录结构 在 Maven 项目中,约定的目录结构对于实现自动化构建至关重要。这些目录...

    maven 实战 所有源代码

    大型项目通常由多个子模块构成,Maven的聚合项目特性可以将这些子模块统一管理。在父`pom.xml`中声明`modules`元素,列出所有子模块,即可实现整体构建。 ### 九、源代码分析 在`mvn_in_action_code`这个压缩包中...

    maven 通用配置

    `settings.xml` 的 `&lt;profiles&gt;` 部分允许定义多个配置文件,可以按需激活: ```xml &lt;profile&gt; &lt;id&gt;profileId &lt;activeByDefault&gt;true &lt;!-- 设置属性值 --&gt; &lt;myProperty&gt;value &lt;/profile&gt; ``` 通过...

    springboot项目框架,多数据源配置,日志,maven多环境打包,集成redis

    在pom.xml文件中,我们可以定义多个profile,每个profile包含特定环境的配置参数。打包时,通过指定激活的profile,Maven会将相应的配置打包进应用,确保部署到正确的目标环境。 **集成Redis**是SpringBoot的一个...

    Maven权威指南中文版.zip

    10. **最佳实践**:书中还会介绍如何制定合理的项目结构、如何避免依赖冲突、如何优化构建速度等实践策略,这些都是提升Maven使用效率的重要环节。 通过阅读《Maven权威指南中文版》,开发者不仅可以掌握Maven的...

    hbase-jar包(多版本)拷贝到maven仓库即可

    2. 然后,解压缩下载的文件,这通常会包含一个或多个JAR文件,以及可能的配置文件和其他资源。 3. 接下来,找到你的本地Maven仓库路径,这通常位于`~/.m2/repository` (对于Unix-based系统) 或 `%USERPROFILE%\.m2\...

    maven仓库创建

    在配置本地Maven设置以使用私有仓库时,需要修改`~/.m2/settings.xml`文件。添加或修改`servers`,`mirrors`和`profiles`部分。在`servers`中定义用户名和密码,`mirrors`用于指定私有仓库作为中央仓库的代理,`...

    基于 Maven 编译的 SpringBoot 部署案例

    总结,本案例“基于Maven编译的SpringBoot部署案例”涵盖了现代Java开发中的多个重要环节,从项目构建、版本控制到云主机部署,以及持续集成和应用监控。理解并掌握这些知识点对于提升开发效率和保证项目质量具有...

    不同环境下的资源文件目录编译

    在IT行业中,资源文件目录编译是一个至关重要的环节,特别是在多环境部署的场景下。这篇博文的标题“不同环境下的资源文件目录编译”显然关注的是如何根据开发、测试、生产等不同环境来管理和编译资源文件。让我们...

    mvn 配置 yui 自动 打包

    YUI Compressor是一款高效的JavaScript和CSS压缩工具,它能够删除代码中的空格、注释并合并多个文件,从而减少文件大小,提升网页加载速度。 首先,让我们深入了解Maven。Maven是一个基于项目对象模型(Project ...

    6_环境变量的设置 视频

    在IT领域,尤其是在Java开发中,环境变量的配置是一个至关重要的环节。环境变量是指操作系统用来影响程序运行方式的参数,它们通常包含路径信息、库引用等,使得程序能够找到所需的资源。本视频“6_环境变量的设置”...

    account:maven小组学习

    6. Maven聚合与继承:掌握如何用聚合(aggregation)和继承(inheritance)来管理多个相关项目。 总的来说,"account:maven小组学习"旨在提升团队成员对Java开发中Maven工具的熟练程度,使他们能更高效地管理和构建...

    Jenkins安装说明文档

    总结来说,Jenkins的安装与项目部署涉及多个步骤,包括Jenkins自身、Maven、JDK和Git的配置,以及自动化脚本的编写。这个过程虽然繁琐,但能极大地提升软件交付的效率和稳定性,是现代DevOps实践的重要组成部分。在...

    NC6.1_产品安装部署及配置指南

    总结,NC6.1的安装部署及配置涉及多个方面,从WebSphere和WebLogic中间件的适应,到数据库的配置,再到集群环境下的代码部署,每一步都需要细致的操作和严谨的测试。此外,集成配置工具的使用说明也涵盖了服务器信息...

    在MacBookPro上设置Java开发环境Java开发J

    在MacBook Pro上设置Java开发环境是每个Java程序员在苹果电脑上进行编程工作时的必经步骤。这个过程包括安装Java开发工具包(Java Development Kit, JDK)、配置环境变量、选择一个集成开发环境(Integrated ...

    【Hadoop篇06】Hadoop源码编译1

    总的来说,编译Hadoop源码是一个涉及多步骤和技术环节的过程,需要对Linux系统、Java开发环境、Maven和Ant工具有一定的了解。通过这个过程,不仅可以学习到Hadoop的构建流程,还可以深入理解Hadoop的内部结构和工作...

    Huawei DevEco Studio使用指南.pdf

    通过以上对华为DevEco Studio使用指南的解析,可以看出它为开发者提供了全面的开发工具支持,涵盖了HarmonyOS应用开发的每一个环节。其目的是降低鸿蒙系统应用开发的门槛,提高开发效率,最终推动鸿蒙生态的发展和...

    阿里云部署springBoot项目

    阿里云部署SpringBoot项目涉及多个步骤,包括申请阿里云服务器、远程连接、环境配置和数据库安装。以下是对这些环节的详细说明: 1. **申请阿里云服务器**: 在开始部署之前,首先需要在阿里云官网注册账号并购买...

Global site tag (gtag.js) - Google Analytics