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