我已经在 Ubuntu 18.04 上安装了 zsh 和 oh my zsh。我想对 kubectl 使用自动完成功能。因此我已经添加source <(kubectl completion zsh)到我的 ~/.zshrc 文件中。
执行此脚本时,zsh 收到以下错误:
complete:13: command not found: compdef
Run Code Online (Sandbox Code Playgroud)
kubectl 文档指出,当出现上述错误时,您应该将以下内容放在 .zshrc 文件的顶部:
autoload -Uz compinit
compinit
Run Code Online (Sandbox Code Playgroud)
执行此操作并重新启动终端后,我收到相同的错误。
在 git-issue 中,我发现以下内容对遇到常见问题的人有所帮助:
#This will perform chmod g-w for each file returned by compaudit to remove write access for group
compaudit | xargs -I % chmod g-w "%"
#This will perform chown to current user (Windows and Linux) for each file returned by compaudit
compaudit | …Run Code Online (Sandbox Code Playgroud) 我在休息时使用假装。不幸的是,我得到的其中一个回复看起来像这样:
{
"customer-id" : "0123"
}
Run Code Online (Sandbox Code Playgroud)
JSON 响应会自动映射到我的 POJO 之一。此响应对象不能具有名称为“customer-id”的属性字段,因为标识符名称中不允许使用破折号 (-)。
我尝试了以下方法:
public class LookUpAccountsResponse {
@JsonProperty("customer-id")
private String customerId;
}
Run Code Online (Sandbox Code Playgroud)
但不幸的是,这不起作用。有没有人有关于如何解决这个问题的建议?
我正在使用 spring 来验证表单。表单的模型类似于:
public class FormModel {
@NotBlank
private String name;
@NotNull
@ImageSizeConstraint
private MultipartFile image;
}
Run Code Online (Sandbox Code Playgroud)
'@ImageSizeConstraint' 是一个自定义约束。我想要的是首先评估@NotNull,如果评估结果为false,则不评估@ImageSizeConstraint。
如果这是不可能的,我还必须检查自定义约束中的 null。这不是问题,但我想分开关注(不是空/图像大小/图像/纵横比/等)。
在一个类中,我想调用一个方法,但不必等到该方法完成。通常在 Spring 应用程序中我会使用 @Async,但是在 Quarkus 应用程序中该怎么做呢?
下面是一个简单的入门示例。在“StartWork”类中,“Work”开始。(我省略了工作接口,但您可以看到它的实现之一:WorkA)。调用“work.do()”后,startWork() 方法应继续执行,而无需等待 work.do() 完成。
@ApplicationScoped
public class WorkA implements Work {
public void do() {
System.out.println("Starting work A.");
try {
Thread.sleep(1000l);
System.out.println("Finished work A.");
} catch(InterruptedException ex) {
System.out.println("My work got interrupted.");
}
}
}
@ApplicationScoped
public class StartWork {
@Inject
Work work;
public void startWork() {
work.do();
System.out.println("I dont' care when and if the work finished, but it has started.");
}
}
Run Code Online (Sandbox Code Playgroud)
这是相同的示例,但现在我尝试使用 Mutiny:
@ApplicationScoped
public class WorkA implements Work {
public void …Run Code Online (Sandbox Code Playgroud) 我有几个共享步骤定义的测试。例如:
Scenario: test1
Given that the sky is blue
And that the sun is up
When I go outside
Then I might get a sunburn
Scenario: test2
Given that the sun is up
When I go outside
Then it will be light
Run Code Online (Sandbox Code Playgroud)
“太阳升起”和“鉴于太阳升起”这两个步骤在实施上是相同的。
我想要的是这样的:
@And("that the sun is up")
@Given("that the sun is up")
public void thatTheSunIsUp() {
// Do some fancy and sunny things.
}
Run Code Online (Sandbox Code Playgroud)
不幸的是这不起作用。我如何才能实现相同的目标,而无需使用相同步骤的重复方法?
当我尝试使用私有默认构造函数但使用(lombok 生成的)构建器映射对象时,MapStruct 无法创建实现。
SomeMapperImpl.java:[20,27] SomeDto() 在 com.example.mapstructdemo.dto.SomeDto 中不是公开的;无法从外部包访问
到:
@Value
@Builder
public class SomeDto {
}
Run Code Online (Sandbox Code Playgroud)
模型:
@Value
@Builder
public class SomeModel {
}
Run Code Online (Sandbox Code Playgroud)
映射器接口:
@Mapper
public interface SomeMapper {
SomeDto map(SomeModel someModel);
SomeModel map(SomeDto someDto);
}
Run Code Online (Sandbox Code Playgroud)
来自 Pom.xml 的片段:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${compiler-plugin.version}</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.2.0</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.4.1.Final</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
生成的实现:
@Generated(
value = "org.mapstruct.ap.MappingProcessor",
date = "2021-01-29T13:47:46+0100",
comments = "version: 1.4.1.Final, compiler: javac, environment: Java …Run Code Online (Sandbox Code Playgroud)