首页 > 其他分享 >读取pom配置报错:org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found chara

读取pom配置报错:org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found chara

时间:2024-11-19 09:14:37浏览次数:3  
标签:xml scanning 文件 snakeyaml Maven pom 报错 资源 属性

使用场景:

项目开发过程中,我们有多种开发环境,使用pom文件统一管理配置,然后使用@xx@读取配置,报错。

org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character '@' that cannot start any token. (Do not use @ for indentation)  in 'reader', line 5, column 13:         active: @spring.profiles.active@

 

解决方案:

在pom.xml中增加如下配置:

 <build>
        <resources>
            <resource>
                <directory>src/main/resources/</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
 </build>

配置详解:

这段配置是 Maven 项目中的资源配置部分,位于 pom.xml 文件中的 <build> 部分。它定义了 Maven 如何处理项目资源文件。下面是对配置的详细解释:

<resources> 元素

<resources> 元素定义了一组资源,这些资源将被包含在项目的构建过程中。在 Maven 构建生命周期中,这些资源会被复制到输出的 JAR 或 WAR 文件中。

<resource> 元素

<resource> 元素指定了一个具体的资源集合。可以有多个 <resource> 元素,每个元素定义了不同的资源集合。

directory 属性

<directory> 元素指定了资源文件所在的目录。在这个例子中,src/main/resources/ 是 Maven 约定的标准目录,用于存放项目资源文件,如配置文件、属性文件等。

filtering 属性

<filtering> 属性是一个布尔值,用于指定是否对资源文件进行过滤。过滤是指 Maven 替换资源文件中的占位符(通常是 ${...} 形式的变量)为实际的值。这个值通常来自于 pom.xml 文件中的属性或者环境变量。

  • true:开启过滤功能,Maven 会替换资源文件中的占位符。
  • false:关闭过滤功能,资源文件中的占位符不会被替换。

作用

在你提供的配置中,<filtering>true</filtering> 表示 Maven 将对 src/main/resources/ 目录下的资源文件进行过滤处理。这意味着,如果这些资源文件中包含了像 ${project.version}${env.MY_VARIABLE} 这样的占位符,Maven 会在构建过程中将它们替换为 pom.xml 中定义的相应属性值或者环境变量值。

例如,如果你有一个 application.properties 文件,里面包含了这样的行:

app.version=${project.version}

在构建过程中,Maven 会查找 pom.xml 文件中定义的 project.version 属性,并将其值替换到 app.version 中。

这种机制非常有用,特别是在需要根据不同环境(开发、测试、生产)使用不同配置的情况下,你可以通过定义不同的 Maven 属性来实现配置的自动化替换,而不需要手动修改资源文件。

标签:xml,scanning,文件,snakeyaml,Maven,pom,报错,资源,属性
From: https://blog.csdn.net/weixin_73060959/article/details/143872333

相关文章

  • docker pull报错:dial tcp: no such host
    dockerpull报错:dialtcp:nosuchhost0xwang于2024-09-2818:07:39发布阅读量1.1k收藏3点赞数5文章标签:dockertcp/ip容器版权有一段时间没用docker了,今天使用docker下载镜像竟然报错,而且是莫名其妙的错误,奔走相告,避免后来者踩坑!Errorresponsefromdaemon:Get"h......
  • 创建文件报错 no space left on device
    现象描述在Linux云服务器中创建新文件时,出现nospaceleftondevice报错。可能原因可能原因处理措施硬盘空间处于已满状态检查硬盘空间是否已满文件系统inode满检查文件系统是否inode满dfdu处于不一致状态检查dfdu是否不一致故障处理通过腾讯云的......
  • 集成百度地图 PERMISSION_UNFINISHED 报错
    项目场景:我这里是一款旅途规划app,集成的是百度地图的SDK。问题描述在开发过程中,运行app后一直都是检索失败errorCode:BMFSearchErrorCode.PERMISSION_UNFINISHED原因分析:是app的BundleIdentifier与百度地图中我的应用中写的iOSSDK安全码不一致。Xcode配置处:......
  • Linux日志报错 fork:Cannot allocate memory
    现象描述日志中出现报错信息“fork:Cannotallocatememory”。如下图所示:可能原因可能是进程数超限导致。系统内部的总进程数达到了pid_max时,再创建新进程时会报“fork:Cannotallocatememory”错。解决思路1.参见处理步骤,查看实例内存使用率是否过高。2.核实......
  • 解决 PbootCMS 网站转移后无法打开报错提示“No input file specified”的问题
    确保所有文件路径正确无误。检查 index.php 文件确保 index.php 文件存在于网站根目录中,并且路径正确。检查其他配置文件确保 config.php 和其他配置文件路径正确。查看错误日志查看服务器日志,获取更多详细的错误信息。PHP错误日志通常位于 /var/log......
  • 记一次Mysql远程连接报错
    问题描述:Plugincachingsha2passwordcouldnotbeloaded:在wsl2用docker中拉取了mysql镜像,启动后想在win下的环境远程连接到docker中的mysql,报错了,报错如下所示搜寻了相关的资料发现,在拉下来的myslq版本是8.0+,caching_sha2_password是默认的身份验证插件,既然sqlyog无......
  • 本地oracle数据库实例启动报错 TNS-12545 TNS-12560 TNS-00515
    oracle实例启动报错TNS-12545TNS-12560TNS-00515具体提示如下:监听该对象时出错:(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=host.docker.internal)(PORT=1521)))TNS-12545:因目标主机或对象不存在,连接失败TNS-12560:TNS:协议适配器错误TNS-00515:因目标主机或对......
  • 记一次切面中读取请求体报错 Cannot call getReader()
    问题写了一个切面来处理被指定自定义注解标注的方法:@Slf4j@Aspect@Component@RequiredArgsConstructorpublicclassMyAnnoAspect{privatefinalHttpServletRequestrequest;@Around("@annotation(myAnno)")publicObjecthandleMyAnno(ProceedingJoinPo......
  • 下载HuggingFace模型的方法以及报错解决
    方法新建文件夹,右键,opengitbashhere设置全局代理#设置全局代理gitconfig--globalhttps.proxyhttp://127.0.0.1:7890gitconfig--globalhttps.proxyhttps://127.0.0.1:7890gitconfig--globalhttp.proxysocks5://127.0.0.1:7890gitconfig--globalhttps.p......
  • 短视频开源源码,报错信息显示ID重复的解决方案
    短视频开源源码,报错信息显示ID重复的解决方案原因分析在最终添加的方法中,出现了重复ID的报错。对于为什么ID会重复,我思考了很久也没有想通。我沿着代码往上找到了saveList。intbatchSize=5000;if(CollUtil.isNotEmpty(saveList)){List<List<Map<String,Obj......