You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用maven-replacer-plugin替换Java源文件版本字符串时无法找到文件的问题求助

使用maven-replacer-plugin替换Java源文件版本字符串时无法找到文件的问题求助

嘿,我之前也碰到过类似的麻烦,咱们一步步来排查可能的问题:

  • 路径大小写或拼写误差:如果你的开发环境是Linux或macOS,文件系统是区分大小写的,得仔细核对pom里写的myclass.java是不是和实际文件名(比如MyClass.java)完全一致,包括包路径里的每一层目录名称,别不小心写错一个字母。

  • 改用Maven标准路径变量:你现在直接用${project.basedir}/src/main/java,其实Maven有专门适配主源码路径的变量${project.build.sourceDirectory},它会自动匹配项目的源码结构(哪怕你自定义过源码路径也没问题),把include路径改成下面这样试试:

    <include>${project.build.sourceDirectory}/com/jf/myapp/myclass.java</include>
    
  • 查看详细调试日志:你给出的日志信息太简略了,试试在命令行执行mvn clean install -X,加上-X参数开启调试模式,插件会输出它实际扫描的文件路径,这样就能清楚看到它找的路径和你预期的是不是一致。

  • 升级插件版本:你用的1.3.2版本比较老旧,有些旧版本可能存在路径解析的小bug,试试升级到较新的稳定版本(比如1.5.3),说不定问题就解决了。

  • 确认文件真实存在:最后手动核对一遍,${project.basedir}/src/main/java/com/jf/myapp/myclass.java这个路径下的文件是不是真的存在,有没有因为项目结构调整,文件被移到其他目录了?

这里给你一个调整后的pom配置参考:

<plugin>
    <groupId>com.google.code.maven-replacer-plugin</groupId>
    <artifactId>maven-replacer-plugin</artifactId>
    <version>1.5.3</version>
    <executions>
        <execution>
            <phase>process-sources</phase>
            <goals>
                <goal>replace</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <includes>
            <include>${project.build.sourceDirectory}/com/jf/myapp/myclass.java</include>
        </includes>
        <token>$project_version$</token>
        <value>${project.version}</value>
    </configuration>
</plugin>

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 08:43:11