我无法将我的 Spring Boot 应用程序从 2.5.7 更新到 2.6.0。它抛出以下错误。
2021-12-07T08:40:22,311 ERROR [restartedMain] o.s.b.SpringApplication.reportFailure:819|| Application run failed org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'webSecurityConfig':
The requested bean is currently in creation: Is there an unresolvable circular reference?
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.beforeSingletonCreation(DefaultSingletonBeanRegistry.java:355)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:227)
Run Code Online (Sandbox Code Playgroud)
从 spring-boot 2.6.0 发行说明中可以清楚地看出,循环引用被禁用。并且可以通过属性重新启用它spring.main.allow-circular-references = true。但我想首先修复循环引用。谁能帮我解决这个问题?请找到下面的WebSecurityConfig类,
2021-12-07T08:40:22,311 ERROR [restartedMain] o.s.b.SpringApplication.reportFailure:819|| Application run failed org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'webSecurityConfig':
The requested bean is currently in creation: Is there an unresolvable circular reference?
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.beforeSingletonCreation(DefaultSingletonBeanRegistry.java:355)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:227)
Run Code Online (Sandbox Code Playgroud)
我的代码是开源的,可以在 …
我在gradle 5上运行声纳曲时出现错误,我得到的错误是
What went wrong:
org.gradle.api.tasks.SourceSetOutput.getClassesDir()Ljava/io/File;
Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Exception is:
java.lang.NoSuchMethodError:
org.gradle.api.tasks.SourceSetOutput.getClassesDir()Ljava/io/File;
at org.sonarqube.gradle.SonarQubePlugin.configureSourceDirsAndJavaClasspath(SonarQubePlugin.java:169)
at org.sonarqube.gradle.SonarQubePlugin.lambda$configureForJava$1(SonarQubePlugin.java:104)
Run Code Online (Sandbox Code Playgroud)
我尝试将gradle版本降级到4.0,并发现了问题,现在它正在显示
:sonarqube
Gradle now uses separate output directories for each JVM language, but this build assumes a single directory for all classes from a source set. This behaviour has been deprecated and is scheduled to be removed in Gradle 5.0
at org.gradle.api.internal.tasks.DefaultSourceSetOutput.getClassesDir(DefaultSourceSetOutput.java:79)
at org.gradle.api.internal.tasks.DefaultSourceSetOutput_Decorated.getClassesDir(Unknown Source)
at org.sonarqube.gradle.SonarQubePlugin.configureSourceDirsAndJavaClasspath(SonarQubePlugin.java:169) …Run Code Online (Sandbox Code Playgroud) 我有一个测试任务间歇性失败的问题(我怀疑这是因为jacoco在测试期间触发了[生成报告])。
有没有一种方法可以在测试过程中禁用jacoco的运行?我可以创建一个仅用于生成覆盖率报告的新任务(我也想知道该怎么做)。在很多情况下,我在运行测试任务时实际上并不需要测试覆盖率报告。
我有 2 个文件需要合并并生成第 3 个文件。请在下面找到示例,
文件 1
xab=p11
aab=p12
aac=p23
xac=p15
yab=p16
Run Code Online (Sandbox Code Playgroud)
档案 2
aab=p17
xac=p25
yyc=p22
Run Code Online (Sandbox Code Playgroud)
我想保留第一个文件的顺序并附加第二个文件。结果应该是:
文件 3
xab=p11
aab=p17
aac=p23
xac=p25
yab=p16
yyc=p22
Run Code Online (Sandbox Code Playgroud)
我尝试了很多方法,但无法获得更简单、易于理解的解决方案。我在 StackOverflow 中找到的那个是有效的,但很难理解并向第三者解释。我找到的解决方案是
cat en_us.txt en_US2.txt | tr -s '\n' | awk -F= '!a[$1]{b[++i]=$1} {a[$1]=$0;} END{for(j=1;j<=i;j++){print a[b[j]]}}'
Run Code Online (Sandbox Code Playgroud)
任何人都可以尝试这个并获得一个可读的解决方案(可能没有使用awk)