可以为命令定义别名。这对于 想要创建较短版本的命令或执行命令的情况 通过完整的命令重命名,同时暂时保留旧的 地方。

别名的格式与命令略有不同。当命令定义为数组时,它会连接在一起形成一个命令。 当 alias 定义为数组时,它用于创建一个单独的 别名。

带有普通字样的别名简单明了,就像你一样 准确理解您的定义,因为其中没有“魔法”。CommandRegistration

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

别名只是在方法上给你肌样。

@Command
class MyCommands {

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

或者 myalias1myalias2(如果定义为数组)。

@Command
class MyCommands {

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

Alias 仅在类级别上没有任何作用,因为它只是一个指令 用于方法级别的注释(如果已定义)。

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

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

类和方法级别的别名将这两者结合在一起,其中 类级别用作前缀,方法级别用作别名的组合。 类级别的别名通常与命令前缀一起使用 使别名保持在同一命令级别。

在这里,你会得到别名 myalias1 myalias2

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

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

在方法级别上,有一种特殊的格式,即一个空字符串,它允许您创建别名,但它仅使用来自 班级水平。

在这里,你会得到别名 myalias1

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

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

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