我曾多次尝试在 Gradle 中配置此 sonarqube 属性sonar.junit.reportPaths
,但仍然收到相同的错误消息。
Gradle 版本 -> 6.7.1
SonarQube Server 版本 -> 8.9 (docker image)
Java 版本 -> openjdk 11.0.2
Intellij 版本 -> 2021.1.2
我的 Sonarqube Gradle 配置如下:
plugins {
id 'java'
id 'jacoco'
id "org.sonarqube" version "3.3"
id 'org.jetbrains.kotlin.jvm' version '1.5.20'
}
Run Code Online (Sandbox Code Playgroud)
sonarqube {
properties {
property 'sonar.projectName', 'Snippets of Java code'
property 'sonar.junit.reportPaths', 'build/test-results/test'
property 'sonar.coverage.jacoco.xmlReportPaths', 'build/reports/test/jacocoTestReport.xml'
property 'sonar.inclusions', '*.java,*.kt'
}
}
jacocoTestReport {
reports {
xml.required = true
csv.required = false
}
}
Run Code Online (Sandbox Code Playgroud)
我仍然收到以下消息: …
@Configuration
@EnableTransactionManagement
public class DataSourceConfig {
@Bean(destroyMethod = "shutdown")
public DataSource dataSource(){
EmbeddedDatabaseBuilder databaseBuilder = new EmbeddedDatabaseBuilder();
databaseBuilder.setType(EmbeddedDatabaseType.H2);
databaseBuilder.addScript("classpath:db/migration/V1__Create_Books_Table.sql");
databaseBuilder.addScript("classpath:db/migration/V2__Add_Books.sql");
return databaseBuilder.build();
}
@Bean
public JpaVendorAdapter vendorAdapter(){
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(true);
vendorAdapter.setDatabase(Database.H2);
vendorAdapter.setShowSql(true);
vendorAdapter.setDatabasePlatform("org.hibernate.dialect.H2Dialect");
return vendorAdapter;
}
@Bean(name = "entityManagerFactory")
public EntityManagerFactory managerFactory(){
Properties jpaProperties = new Properties();
jpaProperties.put("hibernate.hbm2ddl.auto", "create-drop");
LocalContainerEntityManagerFactoryBean managerFactoryBean = new LocalContainerEntityManagerFactoryBean();
managerFactoryBean.setDataSource(dataSource());
managerFactoryBean.setJpaVendorAdapter(vendorAdapter());
managerFactoryBean.setPackagesToScan("com.sammy");
managerFactoryBean.setJpaProperties(jpaProperties);
managerFactoryBean.afterPropertiesSet();
return managerFactoryBean.getObject();
}
@Bean
public PlatformTransactionManager transactionManager(){
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(managerFactory());
return transactionManager;
}
}
Run Code Online (Sandbox Code Playgroud)
那是我的配置类,我的gradle构建文件是 …
@NotNull
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.EXTERNAL_PROPERTY,
property = "type")
@JsonSubTypes(value = {@JsonSubTypes.Type(value = SimpleGrantedAuthority.class)})
private List<GrantedAuthority> authorityList;
Run Code Online (Sandbox Code Playgroud)
以上是我的属性,它是用于设置/授权用户的 Spring Security 接口。在我的测试中,我使用下面的语句序列化为 JSON,因为它将是使用骆驼内容丰富器注入的 JSON 请求正文中的数组或列表。
String jsonObject = mapper.writeValueAsString(accountDetails);
Run Code Online (Sandbox Code Playgroud)
由于上述行,我收到此错误:
com.fasterxml.jackson.core.JsonGenerationException: Can not write a field name, expecting a value
at com.fasterxml.jackson.core.JsonGenerator._reportError(JsonGenerator.java:1897)
at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator.writeFieldName(WriterBasedJsonGenerator.java:126)
at com.fasterxml.jackson.core.json.JsonGeneratorImpl.writeStringField(JsonGeneratorImpl.java:202)
at com.fasterxml.jackson.databind.jsontype.impl.AsExternalTypeSerializer._writeObjectSuffix(AsExternalTypeSerializer.java:163)
at com.fasterxml.jackson.databind.jsontype.impl.AsExternalTypeSerializer.writeTypeSuffixForObject(AsExternalTypeSerializer.java:88)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeWithType(BeanSerializerBase.java:584)
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:151)
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:112)
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:25)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:704)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:690)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:292)
at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3681)
at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:3057)
at com.sammy.controller.HomeControllerTest.checkCreateUser(HomeControllerTest.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) …
Run Code Online (Sandbox Code Playgroud) 我正在使用 Hashicorp 保险库生成自签名证书并成功生成 CA 证书,使用以下链接颁发 ca、ca-chain 和私钥:
Policies , Build Your Certificate。我还可以.pem
将证书、issuesCa、caChain 和 privateKey 文件的组合结果成功导入到 Java 密钥库中,keytool
以获取.jks
.
因此,我使用此命令成功启动了保险库vault server -config=config.hcl
,输出如下:
==> Vault server configuration:
Api Address: https://test.sammy.com:8200
Cgo: disabled
Cluster Address: https://test.sammy.com:8201
Listener 1: tcp (addr: "127.0.0.1:9000", cluster address: "127.0.0.1:9001", max_request_duration: "1m30s", max_request_size: "33554432", tls: "disabled")
Listener 2: tcp (addr: "127.0.0.1:8200", cluster address: "127.0.0.1:8201", max_request_duration: "1m30s", max_request_size: "33554432", tls: "enabled")
Log Level: info
Mlock: supported: true, enabled: true
Recovery Mode: false …
Run Code Online (Sandbox Code Playgroud) 我有这段代码在更新到 Assertj 3.16.1 后不再有效
Throwable thrown = catchThrowable(() -> myObject.methodThrowsException());
assertThat(thrown).isInstanceOf(MyCustomException.class).extracting("fault").hasOnlyElementsOfType(CustomException.class).extracting("code").containsExactly("AnotherCustomException");
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
java:cannot find symbol
symbol: method hasOnlyElementsOfType(java.lang.Class<CustomException.class>)
location: class org.assertj.core.api.AbstractObjectAssert<capture#1 of?, capture#2 of ?>
Run Code Online (Sandbox Code Playgroud)
它要么已被弃用,要么现在以不同的方式实施。我已经浏览了文档并搜索了近两天,看看是否有任何关于如何使用它的信息,而不是以前如何使用它来实现轻松转换,但还没有找到任何东西。当我用它containsOnlyOnceElementsOf
代替给出问题的那个时,我实际上得到了一个类似的错误。这些方法是否有其他替代方法可以实现相同的目的?
任何帮助将不胜感激!!!