问题标签 [maven-replacer-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1229 浏览

maven - 运行 Google Maven 替换插件时的“合法组引用”

我正在使用 Maven 3.2.3。我的 pom.xml 文件中有这个插件……</p>

我注意到当我的“test.properties”文件包含这样的属性时

插件执行时出现以下错误...</p>

问题在于替换值中的“$”。如果我删除它,一切都很好。但是,有时被替换的值会有一个“$”。有没有办法将插件配置为接受“$”,或者除此之外,是否有一个等效的插件我可以使用来实现与上述相同的功能?

0 投票
2 回答
7096 浏览

maven - Maven 替换器:包含美元符号的替换值

我正在处理一个 Maven 脚本,我必须在其中修改一些文件内容。我目前正在使用替换插件,当替换值包含美元符号时会给我带来麻烦。

我遇到问题的替换相对简单:在我的 log4j.xml 中,将行替换<param name="File" value="wat.log" /><param name="File" value="${FOO_BAR}/wat.log" />

我知道,这样写,Maven 会解释${FOO_BAR}为属性。我查找了一个解决方案并尝试了它。当我只是使用${FOO}

结果是一个错误named capturing group is missing trailing '}'。据我了解,该插件使用通常的 Java 正则表达式替换,它解释替换文本中的美元符号和卷曲,以捕获正则表达式中的组。

我尝试了其他一些事情,似乎这种情况下的具体错误是由于下划线造成的。如果我将foo属性更改为{FOOBAR},则错误会更改:No group with name {FOOBAR}

我也尝试了其他一些事情:

  • foo属性更改为{foo},我没有收到错误,但替换掉了$,即我得到value="{foo}/wat.log"了 - 第二次替换foowithFOO_BAR工作,但我仍然缺少美元符号
  • 将属性更改为{dollar}给我一个Illegal group reference错误
  • $$以几种不同的方式(例如,,\$)转义美元,大括号和/或下划线\\$并没有让我更进一步,使用 unicode 或 $ 作为美元符号也没有。

有没有办法用 Maven 实际解决这个问题?我很乐意使用更多属性、更多替换或完全不同的插件。

更新:我在 Windows 上工作 - 不确定这是否/如何影响结果。

0 投票
1 回答
575 浏览

maven - 使用 Google Maven 替换器替换 web.xml 中的令牌以进行 WAR 打包

web.xml的是下${project.root}\src\main\webapp\WEB-INF

当它被打包在 WAR 中而不是在源目录中时,我想使用它com.google.code.maven-replacer-plugin来替换其中的一些令牌。

我试过了:

但我得到了

由于该文件不是在target文件结构下复制的,而是直接从源中获取到 WAR 中(或者我认为),我如何在上面的configuration->file参数中引用它的路径,以便替换器找到它并替换标记?

0 投票
1 回答
204 浏览

war - Maven用替换的字符串覆盖文件

我正在使用 Java+Spring+FreeMarker 创建网络应用程序,并且我想将应用程序版本直接写入 FreeMarker 模板。我尝试使用 maven replacer 插件,但是,当我创建 war 包时,带有替换字符串的文件(在目标目录中)被带有原始令牌的文件覆盖。这是pom.xml的引用:

我做错了什么?

0 投票
1 回答
1030 浏览

maven - Maven-replacer-plugin 不使用 maven-war-plugin 调用

我正在尝试使用 maven 将字符串 %APP_NAME% 替换为 jdbc.properties 中的环境变量。我有以下配置:

当我调用时:

或者

不调用替换插件。谁能解释一下为什么以及我该怎么做才能让它发挥作用?或者,如果替换器与未来的战争插件不兼容,任何人都可以在构建战争之前向我解释在 jdbc.properties 中替换某些字符串的任何其他方式吗?我也看到了 ant 插件,但是配置相同,它也没有被调用。下面的例子..

0 投票
2 回答
3323 浏览

maven-replacer-plugin - 具有多个文件的 maven-replacer-plugin

我正在尝试使用 maven-replacer-plugin 替换多个文件中的值。

首先是我已经阅读了这个主题并且没有任何答案适合我。我没有足够的评论点,也没有时间也没有意愿在 SOF 上愚蠢地刷分。所以,很抱歉这个重复,但我需要向前迈进。

回到正题,这是我的pom

mvn替换器:替换

[INFO] --- replacer:1.5.1:replace (default-cli) @ digishop-a --- [INFO] 在 0 文件上运行替换。

我尝试了解决方案

它也没有工作。

0 投票
2 回答
557 浏览

java - maven-replacer-plugin 抛出 [错误] 非法组引用

我使用 maven replacer 插件来替换 swagger.json 文件中的一些 json。此配置适用于在 java 8 中完成的其他项目。此项目在 java 11 中,并且具有相同正则表达式的相同配置不起作用。正则表达式需要匹配"paths" : {

这是错误日志:

当我仅"paths" : {在令牌选项卡内使用时,什么都不会被替换。

0 投票
1 回答
656 浏览

java - 在不修改原代码的情况下,用Maven替换JAVA代码中的常量

我在 java 常量中有一个文本,我想根据在以下列方式生成工件时配置的 maven 变量替换它:

问题是如果我替换java代码,它会被永远替换并且不再执行替换,所以如果我更改变量的值它没有效果:

我通过相反的过程解决了这个问题:

但是这第二步可能很危险,因为可能会发生冲突并替换类的 java 代码中具有相同值的内容。

另一种选择是在 .class 文件中替换如下:

替换有效,但应用程序无法正确启动。关于如何在不修改原始代码的情况下执行替换的任何其他想法?

0 投票
1 回答
65 浏览

maven - maven-replace-plugin 替换多个输入文件中的多个标记

我们正在使用两个数据库(oracle 和 sqlserver)并希望替换两个数据库文件的componentPrefix。但是分号只在Oracle上。我们怎样才能实现它?

这是我的pom:

0 投票
0 回答
30 浏览

maven - Maven合并更改同一阶段的插件执行顺序

我正在开发一个在多个父 Pom 文件中多次使用相同插件的项目。通常,如果您在同一个 maven 阶段使用两个插件,它将执行首先在 POM 中定义的插件。在我的例子中,Maven 合并了导致我的插件以错误的顺序执行的插件。

我希望我的插件按以下顺序执行:

第一第二第三第四

但它执行它们的顺序是:

第一,第二,第四,第三

这些是我的POM:

父父Pom.xml

父Pom.xml

有效的 Pom.xml

我查看了我项目的 Effective Pom,发现 Maven 合并了这样的插件:

更改插件的阶段不是一个选项,因为这些插件依赖于在编译阶段执行的插件,而其他插件也依赖于第 thrith 和第 4 次执行的执行。

有什么办法可以阻止 maven 将这些插件合并在一起,以便它们保持正确的顺序?