0 0

Maven 资源过滤5

如下pom.xml
  <properties>
<aa>qq</aa>
  </properties>
 
  <resource>                             

<directory>src/main/resources</directory>
        <filtering>true</filtering>
   </resource>
两个问题:
1.目录src/main/resources下有一个aa.txt内容为${aa}
如果我指定<project.build.sourceEncoding>为ISO8859-1或者UTF-8或者GBK,aa.txt中的${aa}都可成功替换

为qq,但是如果不指定其编码,则aa.txt中的${aa}就不会被替换

2.不管指定何种编码target/class下得aa.txt始终都是utf-8编码

问题补充:用的是maven3.0,另外没有配置任何插件
就这样:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>D</groupId>
  <artifactId>D</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>D</name>
  <url>http://maven.apache.org</url>

  <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
 
   <build>
    <resources>
    <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
    </resource>
    </resources>
  </build>
</project>
2012年11月11日 00:40

1个答案 按时间排序 按投票排序

0 0

maven是一个plugin的框架,里面有很多plugin,也可以自己开发plugin或者使用第三方提供的plugin,其中,filter功能是在maven的resources plugin中实现的,所以,filter的encoding也是在它自己的plugin中进行配置的,如果没有配置就使用操作系统的默认字符集。和project.build.sourceEncoding没有关系。
你可以在plugin的配置中进行修改。

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          ...
          <encoding>UTF-8</encoding>
          ...
        </configuration>
      </plugin>
    </plugins>
    ...
  </build>
  ...
</project>

project.build.sourceEncoding只是一个属性配置项,本来是希望所有的plugin开发者都使用这配置项中的字符集作为plugin处理source file的字符集,但是不是所有plugin都遵从了这个建议。所以有的plugin参照了这个参数,有的plugin没有参照这个参数。你的第一个问题,可能是某个plugin参照了project.build.sourceEncoding,如果不配置的话,找不到这个参数,导致你后面的filter也没有成功,配上后一切OK,但是filter所在的plugin本身并不使用project.build.sourceEncoding。

2012年11月11日 12:57

相关推荐

    解决Maven资源过滤的pom配置文件

    ### 解决Maven资源过滤的POM配置文件 在Maven项目中,资源文件(如配置文件、XML文件等)的处理非常重要。Maven通过`&lt;build&gt;`标签下的`&lt;resources&gt;`配置来管理这些资源文件的编译和打包过程。本文将详细解析如何...

    maven资源过滤打包后文件变大的处理方法

    maven资源过滤打包后文件变大的处理方法 Maven是一款流行的Java项目管理和构建工具,广泛应用于企业级项目中。但是,在使用Maven进行资源过滤和打包时,经常会遇到文件变大的问题。本文将详细介绍Maven资源过滤打包...

    maven 过滤文件夹打包

    "maven 过滤文件夹打包"这个主题涉及到的是如何利用Maven的资源过滤功能来实现针对不同运行环境的配置文件打包。下面将详细解释这一过程。 在开发环境中,我们通常会有多种配置文件,比如`application-dev....

    maven多环境部署pom文件实例

    2. **文件夹方式**:创建不同环境的配置文件夹,如`src/main/resources-dev`、`src/main/resources-test`和`src/main/resources-prod`,并使用Maven资源过滤(Resource Filtering)来选择合适的资源文件。...

    idea+maven+springmvc 登录过滤器

    创建登录过滤器的目的是在用户访问受保护的资源之前进行身份验证。过滤器在Spring MVC中扮演着请求预处理的角色,可以在请求到达控制器之前进行拦截,进行必要的处理,如检查用户是否已经登录。以下是构建登录过滤器...

    尚硅谷Maven课程笔记代码资源

    例如,设置标签来声明项目依赖,标签用于配置构建过程,如源码目录、输出目录、资源过滤等。 五、Maven的继承与聚合 Maven支持项目间的继承和聚合。继承允许子项目共享父项目的配置,减少了重复代码。聚合则可以将...

    maven的本地资源包

    1. **资源过滤**:Maven提供资源过滤功能,允许我们在构建过程中替换或过滤资源文件中的变量。例如,`src/main/resources`下的配置文件可以被自动处理,替换掉`${property}`形式的占位符。 2. **资源复制**:通过`...

    Maven打包,指定classes路径

    以上就是关于"Maven打包,指定classes路径"的知识点,主要涉及到Maven的资源配置和插件定制。理解并掌握这些配置可以帮助开发者更高效地管理和构建Java Web应用。同时,记得在实际项目中根据实际情况调整`pom.xml`,...

    maven编译bindead资源

    Maven编译bindead资源是Java开发中的一种特定场景,涉及到Maven这个强大的构建工具和一个名为"bindead"的特殊资源。在Java开发环境中,Maven是管理项目依赖、构建和打包的重要工具,它遵循约定优于配置的原则,使得...

    maven入门.docx

    - **src/test/filters**:单元测试资源文件的过滤器配置。 - **src/site**:项目文档和其他站点信息。 - **pom.xml**:项目的核心配置文件。 - **target**:构建输出目录。 - **LICENSE.txt**:项目许可证文件。 ...

    Intellij IDEA中使用maven filter遇到的问题

    Maven Filter是Maven资源插件(maven-resources-plugin)的一部分,它允许我们在构建过程中对资源文件进行替换操作。通过使用`${property}`语法,我们可以引用Maven属性并在编译或打包阶段动态替换这些值。这对于多...

    过滤器Filter的全面解析

    这是过滤器的核心方法,它接收HttpServletRequest和HttpServletResponse对象作为参数,通过调用`chain.doFilter()`方法将请求传递给下一个过滤器或目标资源。开发者可以在doFilter方法中添加自定义逻辑,比如登录...

    【超级好用】maven 3.6.1

    - **更好的资源处理**:增强了对项目资源文件的处理,比如过滤和复制资源文件时更加智能。 ### Maven的使用 - **安装与配置**:Maven可以通过官方网站下载,解压后配置环境变量即可。配置文件`settings.xml`用于...

    apache-maven-3.5.0 附源码

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

    maven+jkos资源

    【标题】"maven+jkos资源"涉及到的是Java开发中的两个关键工具——Maven和JKOS,它们在构建和管理Java项目中起着至关重要的作用。 【Maven】是Apache软件基金会开发的一个项目管理和集成工具。它通过一个项目对象...

    maven仓库清理程序

    Maven仓库是Java开发者在构建项目时不可或缺的一部分,它存储了项目的依赖库,包括JAR文件和其他构建资源。随着时间的推移,Maven仓库可能会积累大量的缓存文件,这些文件可能包括以".lastupdated"结尾的文件和"_...

    eclipse的maven插件

    9. **资源过滤**:Maven的资源过滤功能可以在构建过程中处理资源文件,例如替换占位符。M2E支持这一特性,使得在IDE中预览和编辑这些资源文件更为方便。 10. **Eclipse构建与Maven构建的协同**:M2E可以与Eclipse的...

    Maven学习必要插件

    - `maven-resources-plugin`:处理资源文件,如复制、过滤等。 - `maven-jar-plugin`:打包Java应用为JAR文件。 - `maven-war-plugin`:打包Web应用为WAR文件。 - `maven-eclipse-plugin`:生成Eclipse项目文件...

    maven-3.0.3下载链接

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

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

    基本目录包括`src/main/java`(存放源代码)、`src/main/resources`(存放资源配置文件)、`src/main/webapp`(存放Web应用资源)等。 3. **Spring MVC框架** Spring MVC是Spring框架的一部分,用于处理Web请求。...

Global site tag (gtag.js) - Google Analytics