`
ihyperwin
  • 浏览: 436048 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

使用maven为不同环境的工程打包

阅读更多
pom.xml里加入下面内容:


<build>
		<pluginManagement>
		   <plugins>
			 <plugin>               
			     <groupId>org.apache.maven.plugins</groupId>   
			     <artifactId>maven-resources-plugin</artifactId>     
	                     <version>2.5</version>            
			     <configuration>          
		                <useDefaultDelimiters>false</useDefaultDelimiters>    
		                   <delimiters>    
					<delimiter>$[*]</delimiter>    
			          </delimiters>         
			         <encoding>UTF-8</encoding>              
			      </configuration>          
			 </plugin> 
                  </plugins>
		</pluginManagement>
		<resources>
			<resource>
				<directory>${basedir}/src/main/resources</directory>
				<filtering>true</filtering>
			</resource>
		</resources>
		<testResources>
			<testResource>
				<directory>${basedir}/src/test/resources</directory>
			</testResource>
		</testResources>
</build>



maven-resources-plugin,官网介绍地址http://maven.apache.org/plugins/maven-resources-plugin/,从2.3版本开始引入过滤机制。
http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html 这个网址具体介绍Filtering功能。
其中本例子中useDefaultDelimiters设置为false,不使用默认配置。当然也可以使用,默认的如下:(详情请看这个网址:http://maven.apache.org/plugins/maven-resources-plugin/resources-mojo.html)
Set of delimiters for expressions to filter within the resources.
These delimiters are specified in the form 'beginToken*endToken'. If no '*' is given, the delimiter is assumed to be the same for start and end.
So, the default filtering delimiters might be specified as:

<delimiters>
  <delimiter>${*}</delimiter>
  <delimiter>@</delimiter>
</delimiters>

Since the '@' delimiter is the same on both ends, we don't need to specify '@*@' (though we can).




设置prorfiles,四个profile,默认激活dev。

<profiles>
		<profile>
			<id>dev</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<build>
				<filters>
					<filter>../${project.parent.artifactId}/vars/vars.dev.properties</filter>
				</filters>
			</build>
		</profile>
		<profile>
			<id>sit</id>
			<build>
				<filters>
					<filter>../${project.parent.artifactId}/vars/vars.sit.properties</filter>
				</filters>
			</build>
		</profile>
		<profile>
			<id>pre</id>
			<build>
				<filters>
					<filter>../${project.parent.artifactId}/vars/vars.pre.properties</filter>
				</filters>
			</build>
		</profile>
		<profile>
			<id>prod</id>
			<build>
			   <filters>
			       	<filter>../${project.parent.artifactId}/vars/vars.prod.properties</filter>
				</filters>
			</build>
		</profile>
</profiles>


文件目录如图:





var.dev.properties文件为过滤文件,为普通的Property文件,里面是一些key、value值。下面是个demo

envName=dev
hostName=192.168.0.1
port=80
url=http://www.test.com

如项目中还有其他的一些配置文件,可以把变量的赋值放在var.dev.properties等文件中。比如项目中还有其他的xml文件和properties文件,只需在这些文件中作如下引用。

demo.properties

hostName=$[hostName]
testUrl=$[url]
env=$[envName]

这样即可通过$[]占位符(在上面通过pom文件配置)引用到var.dev.properties等过滤文件的内容。xml中引用过滤文件的属性,亦是如此。

最后就是通过maven打包了,激活对应的profile。如下:

dev打包命令:  mvn clean install -Pdev  或  clean install (默认是dev)
sit打包命令:  mvn clean install -Psit
pre打包命令:  mvn clean install -Ppre
prod打包命令: mvn clean install -Pprod








  • 大小: 2.7 KB
分享到:
评论

相关推荐

    Maven使用命令创建工程,打包工程和常用命令使用的代码文件

    本篇文章将深入探讨如何使用Maven命令来创建工程、打包工程以及掌握一些常用的Maven命令。 首先,让我们了解Maven的核心概念。Maven基于项目对象模型(Project Object Model,POM),这是一个XML文件,包含了项目的...

    在eclipse中不使用maven创建springboot工程所需jar包

    在不使用Maven的情况下,在Eclipse中创建Spring Boot工程,你需要手动管理依赖的jar包。以下是一些关于这些jar包及其在Spring Boot项目中的作用的关键知识点: 1. **jboss-logging-3.3.0.Final.jar**:这是一个日志...

    maven 占位符打包

    标题“maven 占位符打包”指的是在Maven的POM.xml文件中使用特定的占位符,以便在不同环境中替换为相应的配置值。这样可以实现代码的复用和环境的隔离,提高开发效率并降低出错的可能性。 描述中的“工程运行环境有...

    maven工程转web工程

    然而,有时我们可能需要将一个普通的Maven工程转换为Web工程,以便于部署到Web服务器上运行。这个过程涉及到对项目的配置进行一定的调整,确保其符合Web应用程序的标准结构和配置要求。以下将详细介绍如何进行这个...

    Spring in Action 使用Maven 构建Spring 工程

    在Maven构建的工程中,我们可以使用XML配置文件(通常命名为`beans.xml`)来定义bean及其依赖关系,或者使用Java配置类,这使得配置更加灵活且易于测试。Spring容器会根据配置自动实例化bean,并负责它们的生命周期...

    maven 一键打包

    此时,可以通过Maven的profile功能,定义不同环境的配置,并在打包时选择相应的profile。 ### Maven profile Profile是Maven中的一个概念,用于根据不同的环境条件启用或禁用一组设置。例如,你可以创建名为`dev`、...

    Java+IDEA+Maven混淆打包

    接下来,我们将按照以下步骤在IDEA中使用Maven进行混淆打包: **步骤1:设置Maven项目** 确保你的IDEA项目是一个Maven项目。如果还不是,可以右键点击项目 -&gt; "Add Framework Support" -&gt; 选择"Maven"进行添加。 ...

    使用Maven Hibernate5 之反向工程

    Maven通过使用一个项目对象模型(Project Object Model,POM)来描述项目,并自动处理项目的构建过程,包括编译、测试、打包、部署等。使用Maven可以统一项目构建过程,减少重复配置,同时可以通过其丰富的插件库...

    springboot+maven打包demo【将依赖与配置文件打包到jar包外部】

    在本文中,我们将深入探讨如何使用Spring Boot和Maven来构建一个项目,使得依赖和配置文件被打包到jar包外部,以实现更加灵活的项目管理。这个方法对于那些需要根据不同环境进行定制配置或者频繁更新配置的应用来说...

    Maven管理ServiceMix工程

    Maven的Profile功能可以针对不同的环境配置不同的属性,这对于ServiceMix在开发、测试和生产环境的部署非常有用。你可以为每个环境定义不同的配置,如数据库连接信息、服务器地址等。 **7. 部署到ServiceMix** ...

    基于maven创建web项目

    基于maven创建web项目 ...本文介绍了基于maven创建web项目的步骤,包括搭建maven环境、集成maven到Myeclipse2013和创建maven架构下的WEB工程。通过这篇文章,读者可以学习到如何使用maven来构建和管理web项目。

    Maven聚合工程源码

    总结来说,"Maven聚合工程源码"为我们提供了一个学习和理解大型Java项目组织结构、依赖管理、构建流程和插件使用的绝佳案例。通过对"workspace2"的深入研究,我们可以更好地掌握Maven的实践技巧,提高开发效率,并为...

    Maven创建Java工程

    本教程通过实例演示了如何利用Maven创建一个多模块Java工程,并将其集成到Eclipse环境中,为开发者提供了一条清晰的项目构建和管理路径。无论是初学者还是经验丰富的开发者,都能从中受益,提升项目构建效率和代码...

    手动创建maven工程

    3. **设置Maven环境**:确保你已经安装了Apache Maven,如压缩包中的`apache-maven-3.3.3-bin.zip`,解压后将其路径添加到系统的PATH环境变量中。 4. **运行Maven命令**:使用Maven的命令行工具,如`mvn compile`来...

    maven多模块项目工程-已搭建好

    2. **Eclipse开发工具**:Eclipse是Java开发者广泛使用的集成开发环境,它支持Maven插件,可以方便地创建、管理和构建Maven项目。在Eclipse中,你可以通过“New -&gt; Maven Project”创建新的Maven项目,并选择...

    maven搭建SSH工程

    - 使用Maven的生命周期命令,如`mvn clean compile`进行编译,`mvn test`执行单元测试,`mvn package`打包成war文件。 - 将war文件部署到Tomcat或其他Servlet容器中运行。 【标签】:“源码”、“工具” 源码在...

    maven工程

    【标题】:“Maven工程”是一个广泛使用的Java项目管理和构建工具,它简化了构建过程,通过依赖管理和项目对象模型(POM)的概念,使得开发者能够更有效地管理项目的构建、报告和文档。 【描述】:Maven是Apache...

    maven开发环境搭建手册

    2. **配置Maven环境变量**: - 设置`M2_HOME`环境变量,值应为Maven的解压缩路径。 - 在系统的`PATH`环境变量中添加`%M2_HOME%\bin`,确保系统可以找到Maven的可执行文件。 - 为了确保JDK版本兼容,Maven需要的是...

    Maven2 来完成Struts2.0项目的打包实例

    ### Maven2 完成 Struts2.0 项目打包实例详解 #### 一、Maven与Struts2.0简介 ...通过以上步骤,我们可以使用Maven2来创建、配置和打包一个Struts2.0项目,为开发Java Web应用程序提供了一个高效的工作流程。

Global site tag (gtag.js) - Google Analytics