此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Shell 3.3.3spring-doc.cn

别名

可以为命令定义别名。这很方便 您想要创建较短版本的命令或 going 通过完整的命令重命名,同时暂时保留旧的 地方。spring-doc.cn

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

带有 plain 的别名简单明了 完全按照您的定义获取,因为它没有 “魔法” 。CommandRegistrationspring-doc.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();
}

使用 annotation 定义别名稍微复杂一些,因为它 可以同时存在于类和方法级别。以下是它是如何实现的 工程。@Commandspring-doc.cn

仅在方法上使用 Alias 会得到 myaliasspring-doc.cn

@Command
class MyCommands {

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

或者 myalias1myalias2(如果定义为数组)。spring-doc.cn

@Command
class MyCommands {

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

仅在类级别上使用别名不执行任何操作,因为它只是一个指令 for Comments 在方法级别(如果已定义)。spring-doc.cn

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

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

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

在这里,你会得到别名 myalias1 myalias2spring-doc.cn

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

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

在方法级别上,有一种特殊格式,它是一个空字符串,它允许你创建一个别名,但它只使用 类级别。spring-doc.cn

在这里,你将获得别名 myalias1spring-doc.cn

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

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

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