使用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
相关产品推荐
相关产品推荐

