`
cloudstars
  • 浏览: 39842 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Maven War项目如何根据不同环境进行资源过滤

 
阅读更多

前提:

      标准的Maven Web工程,使用jetty插入调试,配置项都在WEB-INF/config下;

 

需求:

      有多个环境(开发、单元测试、联调、ST、UAT、生产),每个环境的配置项可能不多,希望在打WAR包的时候,通过简单指定当前环境,就可以根据不同的配置项生成对应的WAR包,即开发的WAR包里的WEB-INF/config下的配置项对应开发的环境,生产的WAR包里的WEB-INF/config下的配置项对应生产的环境,如是而已。

 

实现步骤:

1、定义多个profile,代表多个环境,其中开发环境默认激活,如下:

<profiles>
   <profile>
    <id>dev</id>
    <activation>
     <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
      <project.env>dev</project.env>
     </properties>
   </profile>

 。。。省略部分
     <profile>
    <id>prd</id>
    <properties>
      <project.env>prd</project.env>
     </properties>
   </profile>
  </profiles>

 

2、在src/main/filters下定义不同的配置文件,如

    project-dev.properties

    ...

    project-prd.properties

每个配置文件代表一个环境中相同的配置项,格式是符合Java属性文件的KEY/VALUE形式。

 

3、将项目中和环境有关的配置抽取出来,放到src/main/filters/config下,如

   project-spring.xml(其中就有数据库等相关信息)

 

4、使用maven war插件进行过滤

<plugin>   
      <groupId>org.apache.maven.plugins</groupId>   
      <artifactId>maven-war-plugin</artifactId>   
      <version>2.4</version>
         <configuration>
       <includeEmptyDirectories>true</includeEmptyDirectories>
       <filters>
        <filter>src/main/filters/project-${project.env}.properties</filter> 
       </filters>
       <webResources>
        <resource>
         <directory>src/main/filters/config</directory>
         <filtering>true</filtering>
         <targetPath>WEB-INF/config</targetPath>
        </resource>
       </webResources>
       <warSourceExcludes>WEB-INF/logs/*.*, **/.bak, **/.log</warSourceExcludes>
      </configuration>   
     </plugin>

      

分享到:
评论

相关推荐

    Springboot项目正确打war包maven版pom.rar

    5. **配置资源过滤**:如果项目中有静态资源(如HTML、CSS、JavaScript),需要确保它们被正确地复制到war包的相应位置。这可以通过`maven-resources-plugin`插件完成。 ```xml ... &lt;directory&gt;src/main/...

    maven 过滤文件夹打包

    总结来说,"maven 过滤文件夹打包"是利用Maven的资源过滤和插件配置功能,确保在不同环境下打包的项目包含正确的配置文件。这一方法提高了开发效率,降低了手动管理配置文件的出错概率,是Java项目部署中常见且重要...

    maven多环境配置打包

    在每个profile中,可以定义资源过滤规则,例如,替换`${db.url}`变量,使其在不同环境中指向不同的数据库URL。 4. 配置示例: 在pom.xml中,可以这样定义一个profile: ```xml &lt;id&gt;dev &lt;env&gt;dev ...

    spring boot 项目 + maven本地仓库

    Maven的profile功能允许根据不同的环境(如开发、测试、生产)定制不同的配置。Spring Boot项目可以利用profile来区分不同环境的配置,如数据库连接信息。 6. Spring Boot Actuator: 这是一个用于生产环境的工具...

    maven:项目管理工具;安装、使用及配置

    Maven的资源插件(maven-resources-plugin)用于处理项目的资源文件,如复制、过滤和替换资源文件。这在构建过程中非常有用,确保资源文件被正确地处理和打包到最终的输出中。 【Maven项目之间的关系】 Maven项目...

    使用Eclipse构建Maven的Web项目

    在IT行业中,Eclipse是一款广泛使用的Java集成开发环境(IDE),而Maven则是一个强大的项目管理工具,主要用于构建、管理和依赖管理。这篇博客"使用Eclipse构建Maven的Web项目"将详细介绍如何利用Eclipse创建并配置...

    使用maven Filtering实现多环境构建

    在实际应用中,还可以结合使用Maven的`assembly插件`或`jar-maven-plugin`来打包不同环境的可执行JAR或WAR文件,使得部署更便捷。此外,一些企业级的Maven插件,如Spring Boot的`spring-boot-maven-plugin`,也提供...

    maven resource

    ### Maven资源管理与Java项目配置...Maven强大的资源管理和依赖管理功能,使得开发者能够更加高效地进行Java项目的开发工作。此外,Maven还提供了丰富的生命周期管理和插件支持,进一步增强了项目的自动化构建能力。

    Maven学习必要插件

    Maven的profiles允许根据不同的环境条件启用或禁用特定的配置。例如,开发环境和生产环境可能需要不同的数据库连接配置,这可以通过不同的profile来实现。 9. **集成开发环境与Maven** 大多数现代IDE(如Eclipse...

    使用maven 部署环境 mvc模式 实现 登录 退出登录注册 过滤和监听的功能

    1. **Maven环境搭建** Maven是Apache组织提供的一个项目管理工具,通过XML配置文件管理项目的构建、报告和依赖关系。首先,我们需要在本地安装Maven,并配置Maven的`settings.xml`文件,添加远程仓库地址,以便下载...

    [springmvc注解 + maven 完整项目]解决maven项目直接发布tomcat中 classes为空

    3. **过滤器问题**:如果你使用了Maven的资源过滤功能,可能会导致某些文件没有被正确复制到`classes`目录。 4. **依赖问题**:确保所有依赖都已正确添加到`pom.xml`中,且版本与项目兼容。 5. **Tomcat部署设置**...

    maven-3.0.3下载链接

    3. **资源过滤**:允许在构建过程中对资源文件进行动态替换或过滤,提高了构建的灵活性。 4. **更好的错误处理**:改进了错误报告机制,使得错误信息更加准确和详细,便于问题定位。 5. **增强的依赖管理**:优化了...

    ssm+maven+shiro

    总结来说,"ssm+maven+shiro"项目是一个完整的Java Web应用示例,它展示了如何使用Spring、Spring MVC和MyBatis构建业务逻辑,通过Maven进行项目管理,以及利用Apache Shiro实现安全控制。这样的项目结构和实践,...

    Struts2 HelloWorld示例(Maven项目)

    这个“Struts2 HelloWorld示例”是一个基础的Maven项目,旨在帮助初学者理解如何在实际开发环境中设置和运行一个简单的Struts2应用。 首先,让我们了解Maven。Maven是一个项目管理工具,它通过使用一个项目对象模型...

    Maven打包,指定classes路径

    同时,记得在实际项目中根据实际情况调整`pom.xml`,因为不同的项目可能有不同的目录结构和需求。通过这样的配置,你可以确保Maven按照你的需求进行打包,使得类文件准确无误地出现在`WebContent/WEB-INF/classes`...

    maven+jkos资源

    【标题】"maven+jkos资源"涉及到的是Java开发中的两个关键工具——Maven和JKOS,它们在构建和管理Java项目中起着至关...对于学习和理解Maven的项目构建,以及如何在Web环境中集成和使用JKOS,这些资源将非常有价值。

    apache-maven-3.5.0 附源码

    例如,设置编译源代码的Java版本,或者自定义打包时的资源过滤。 6. **多模块项目 (Multi-module Projects)**: Maven支持多模块项目结构,一个父POM可以管理多个子模块,便于大型项目的构建和依赖管理。 7. **...

    maven 一键打包

    通过合理配置Maven POM文件、使用profiles和资源过滤,可以实现大部分自动化。然而,对于特定的环境配置和集群部署,可能还需要结合其他工具和策略进行优化。理解并熟练运用这些工具和技巧,将使你的项目管理和部署...

    maven简单web实例

    对于Web应用程序,Maven通常会将项目打包成WAR文件,这是Java Web应用的标准部署格式。WAR文件包含了所有的类、资源、配置文件,以及Web应用所需的静态内容(HTML、CSS、JavaScript等)。在POM中,你可以配置打包...

Global site tag (gtag.js) - Google Analytics