别名

可以为命令定义别。这对于 比如你想创建一个更简短的命令版本,或者 通过完全重命名命令,同时暂时保留旧命令 地方。spring-doc.cadn.net.cn

别名的格式与命令略有不同。当命令被定义为数组时,它会被串接成一个命令。 当别名被定义为数组时,它用来创建独立的别名。spring-doc.cadn.net.cn

带有平原的别名指挥注册简单明了,就像你一样 得到你定义的那种,因为里面没有“魔法”。spring-doc.cadn.net.cn

CommandRegistration commandRegistration() {
	return CommandRegistration.builder()
		.command("mycommand")
		// define alias as myalias
		.withAlias()
			.command("myalias")
			.and()
		// define alias as myalias1 and myalias2
		.withAlias()
			.command("myalias1", "myalias2")
			.and()
		.build();
}

定义别名@Command注释则更复杂一些 可以同时存在于类和方法两个层面。以下是其具体例子 工程。spring-doc.cadn.net.cn

仅仅在某个方法上用别名就给你myaliasspring-doc.cadn.net.cn

@Command
class MyCommands {

	@Command(command = "mycommand", alias = "myalias")
	void myCommand() {
	}
}

或者如果被定义为数组,则是myalias1myalias2spring-doc.cadn.net.cn

@Command
class MyCommands {

	@Command(command = "mycommand", alias = { "myalias1", "myalias2" })
	void myCommand() {
	}
}

仅在类级层面使用别名没有任何作用,因为它只是指令 如果定义为方法层级的注释。spring-doc.cadn.net.cn

@Command(alias = "myalias")
class MyCommands {

	@Command(command = "mycommand")
	void myCommand() {
	}
}

在类级和方法层面的别名将两者结合,其中 类级作为前缀使用,方法级作为别名的组合使用。 类级的别名通常与命令前缀一起使用 以保持别名处于同一命令级别。spring-doc.cadn.net.cn

这里你会得到别名 myalias1 myalias2spring-doc.cadn.net.cn

@Command(alias = "myalias1")
class MyCommands {

	@Command(command = "mycommand", alias = "myalias2")
	void myCommand() {
	}
}

在方法层面有一种特殊格式,那就是空字符串,允许你创建一个别名,但它只使用来自 班级层级。spring-doc.cadn.net.cn

这里你会得到别名myalias1spring-doc.cadn.net.cn

@Command(command = "mycommand", alias = "myalias")
class MyCommands {

	@Command(command = "", alias = "")
	void myMainCommand() {
	}

	@Command(command = "mysubcommand", alias = "mysubalias")
	void mySubCommand() {
	}
}