gpt4 book ai didi

java - Maven:编译前替换源文件中的标记

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:17:31 25 4
gpt4 key购买 nike

我想在编译前替换源文件(在我的例子中是 *.java)中的标记 @NAME@。

我尝试使用 google replacer 插件,但我愿意接受任何对我有帮助的东西。

1.pom.xmlpom 文件看起来像这样

<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.3</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>src/main/java/com/test/sample/File.java</include>
</includes>
<replacements>
<replacement>
<token>@NAME@</token>
<value>New content</value>
</replacement>
</replacements>
</configuration>
</plugin>

但是在我运行 mvn package 之后输出是:

--- replacer:1.5.3:replace (default) @ MyProject --- [INFO] Replacement run on 0 file.

因为没有报错我不知道自己做错了什么。也许:

  1. 定义的阶段错误
  2. 定义的包含错误
  3. ...

您好!

最佳答案

我认为有两种选择。

如果您继续使用该插件,我认为您需要将 ${basedir} 添加到 include 语句中:

<include>${basedir}/src/main/java/com/test/sample/File.java</include>

如果您不想修改 src/main 中的文件,而是过滤文件并将其添加到构建中,您可以使用标准资源过滤和 buildhelper 插件将那些“生成的源”添加到构建中。

所以第一步是使用资源过滤来复制文件:http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

然后使用http://www.mojohaus.org/build-helper-maven-plugin/将这些源添加到构建中。

某些 IDE (IntelliJ) 会自动识别 /target/genereated-sources 如果您继续使用该文件夹(它不是标准但很常见)。如果您搜索“maven”和“generated-sources”,您会找到很多教程。

希望这有帮助:)

关于java - Maven:编译前替换源文件中的标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32198345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com