当前位置: 首页 > 知识库问答 >
问题:

Maven筛选资源

裴良弼
2023-03-14

我正在运行一个简单的maven项目(Maven3.3.9),其中包含配置文件和资源筛选。似乎总是在默认配置文件上进行筛选。

src/main/filters(默认)中有两个配置文件:config-dev.properties和config-prod.properties(仅包含一个变量application.env=development application.env=production

和src/main/resources(默认)中包含以下内容的资源文件:

We are working on ${application.env}

使用的命令行是mvn clean resources:resources-pprod

预期输出为

We are working on production

但筛选的资源文件包含

We are working on development

Maven pom片段如下所示:

<build>
    <finalName>test-maven-module</finalName>
    <filters>
        <filter>src/main/filters/config-${build.profile.id}.properties</filter>
    </filters>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

和配置文件配置

<profiles>
    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <build.profile.id>dev</build.profile.id>
        </properties>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <build.profile.id>prod</build.profile.id>
            </properties>
    </profile>
</profiles>

有什么建议吗?

共有1个答案

岳高明
2023-03-14

我在Eclipse+maven:profile忽略后发现了解决方案

问题是使用了“使用本机钩子或轮询刷新”选项(preferences>general>workspace>refresh using native hooks)。取消选中此选项可解决问题。

 类似资料:
  • 这有点让人抓狂,在与Maven合作的几年里,我从未见过这种情况发生。一个简单的项目(不是我自己写的)会随机失败过滤资源,我不知道是什么导致了它。我不能共享项目源代码,但我会尽可能多地共享POM。请记住,问题不在于代码,而在于Maven随机决定不过滤资源。 我最初在POM的build标签中配置了这个: 在我的src/main/资源目录中,我有一个名为spring-config.xml.的文件。这个文

  • 我有一个SpringBoot项目(maven/java8)。 我想通过Maven配置文件(dev.properties|prod.properties)过滤src/main/Resources/application.properties中的一些自定义变量 Maven命令: 应用属性: 开发属性: prod.properties: pom.xml:

  • 我有以下pom.xml: 注意,上的元素被注释掉了 在中还有以下内容 因此,我希望Maven做的只是用替换,除非开发配置文件被激活,否则我希望Maven用替换 当我运行时,它将值设置为。很好,资源筛选工作正常。 但是,当我运行时,它将值设置为 如果取消对配置文件上的元素的注释并运行,则会将设置为 我甚至运行了让它输出活动的配置文件名称,并且在上面的两种情况下,它都表示开发配置文件是活动的,但是如果

  • 对于Java和Maven来说有点陌生,但我试图让Maven处理数据库连接属性,以便让Maven构建在dev/stage/prod环境之间更改它们,我遇到了过滤和资源方面的问题。我也不知道我做错了什么。 POM文件: 数据库。属性 Maven版本3.3.8 JDK 1.8.0-72 命令行 错误 任何帮助都将不胜感激。

  • Maven resources插件是否允许在注入Maven profile属性期间灵活地排除某些文件? 我不想从程序集中排除文件,只是从注入阶段排除文件。 我正在处理的项目在settings.xml中为每个部署环境定义了唯一的Maven配置文件(和相应的属性)。在生成项目时,将执行以下步骤 项目POM将资源文件夹定义为应用资源筛选的目标 资源文件夹包含.xml和.properties文件 在mvn

  • 在新的Laravel资源类中,您可以根据自己喜欢的任何内容删除属性。 如果您想返回许多项目,您可以使用该功能 但这不允许您在一个位置添加元数据。输入一个集合,太好了,这是一个很好的格式,能够添加元数据的许多项目。但是,您不能做的是筛选集合,您必须像使用资源一样隐藏属性。我能看到的唯一办法就是 我是不是错过了什么?对于资源收集来说,这似乎是一个被忽视的巨大能力