我遇到了一个问题,当我从Intellij 15.0.2运行Maven build时,Maven资源插件没有将我的属性过滤到我的文件中。当我从Windows命令行运行mvn compile时,它确实可以工作。我的插件配置为:
<properties>
<prop1>aaa</prop1>
<prop2>bbb</prop2>
</properties>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>file1</include>
<include>file2</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>resources</goal>
</goals>
</execution>
</executions>
</plugin>
尝试将${pom.basedir}添加到
从…起
<build>
(...)
<testResources>
<testResource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
</testResource>
(...)
</build>
到
<build>
(...)
<testResources>
<testResource>
<filtering>true</filtering>
<directory>${pom.basedir}/src/test/resources</directory>
</testResource>
</testResources>
(...)
</build>
我怀疑当Maven项目有多个模块时,Intellij需要找到正确的资源文件来执行pom.xml属性的替换。
tldr:我能够重现您的问题,然后通过移出<代码>
xml prettyprint-override"><build>
<resources>
<resource>
<filtering>true</filtering>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>*</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>resources</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- <snip> Other plugins -->
</plugins>
</build>
未来的读者,如果你只对修复感兴趣,不要再读了。对于无畏的SO-ER,血淋淋的细节在下面等着!
我这样做是因为这是我在之前的项目中打开资源过滤的方式。我不需要更改默认阶段(Process-Resources
),因此根本不需要显式指定maven-resources-plugin
。但是,我很想知道为什么OP的配置不起作用,因此查看了maven-resources-plugin留档中资源
mojo的示例,它似乎具有
用法文档中的措辞似乎暗示
应该从maven-resource-plugin介绍开始,其中明确指出:
资源:资源将主源代码的资源复制到主输出目录。
此目标通常自动执行,因为默认情况下它与流程资源生命周期阶段相关联。它总是使用项目。建筑resources元素指定资源,默认情况下使用项目。建筑outputDirectory指定复制目标。
我很想暗示Intellij没有错。
对于Intellij 15.0.2,当从Intellij或命令行执行mvn clean compile时,过滤行为(即它是否工作)是相同的。我原以为问题出在插件/pom配置中,而不是Intellij本身,除非Intellij的maven集成中存在缺陷。值得一提的是,在Intellij中使用maven时,我还没有遇到这个问题(从12.x版开始已经使用了一段时间)。
您的Intellij是否使用与命令行使用的mvn不同的捆绑mvn?i、 e.在这里和从命令行看到的maven是否相同?这是我能想到的唯一一件事,除了Intellij的maven集成中的一个bug(不太可能),它可能解释了您所看到的不同行为。
1. 2.ffmpeg是从http://johnvansickle.com/ffmpeg/ 3.我下载了,解压缩此文件,然后运行:然后安装了。我使用: 检查它没有问题。 我在我的系统中运行这些命令没有问题: 但是当我在java中调用这个命令时,会发生错误,为什么 错误: 结果1: 结果2:ffmpeg 3.1版。1-静态http://johnvansickle.com/ffmpeg/版权所有(c)
问题内容: 我有一个查询,我需要过滤出结果。 这是我的查询 我说错了。我显然对过滤字段有一个查询。我遵循的是Elasticsearch页面上经过过滤的查询文档中给出的格式。 https://www.elastic.co/guide/zh-CN/elasticsearch/reference/current/query-dsl- filtered- query.html 问题答案: 该查询已在ES
问题内容: 制作针对不同事件类型定义的转换与 StAX的 使用和感觉被迫进入一个程序实现- 提取这些事件并进行处理,过滤这些事件并处理它们,不是把所有的结果重新走到一起并返回。 SAX 似乎有一个非常好的功能,即基于XMLFilters的可链接筛选器。 我宁愿保留基于StAX的实现,但以某种方式合并或仿真SAX中的可链接筛选器。 可以通过合理的努力做到这一点吗?我已经错过了一个实现吗? 由于项目限
我在IntelliJ Ultimate 2017.1.5中有一个基于gradle的groovy项目。我正在使用groovy 2.4.4。我的想法是用gradle 4.0.2运行gradle。 Gradle“webclient”项目刷新失败 错误:对于类:org,没有这样的属性:from。格拉德尔。应用程序编程接口。内部的任务。DefaultTaskOutputs$TaskOutputUnionFi
问题内容: 如果我有一个带有对象作为属性值的复杂对象,如何按嵌套的属性之一进行过滤? 可以使用OOB ng-repeat过滤器完成此操作吗? 数据 ngRepeat 问题答案: 您需要传入参数以过滤: 柱塞示例
问题内容: 我正在尝试根据的特定字段的值过滤Django中的表。 例如,我有两个模型: 我想根据相关项目的名称过滤我的资产列表。 目前,我正在执行两个查询: 我想知道是否有一种方法可以在主查询中指定这种过滤? 问题答案: