CRaSH入門
1. 序章
CRaSHは、JVMにデプロイされ、JVMとの対話を支援する再利用可能なシェルです。
このチュートリアルでは、CRaSHをスタンドアロンアプリケーションとしてインストールする方法を説明します。 また、Spring Webアプリケーションに埋め込み、いくつかのカスタムコマンドを作成します。
2. スタンドアロンインストール
CRaSHの公式Webサイトからディストリビューションをダウンロードして、スタンドアロンアプリケーションとしてCRaSHをインストールしましょう。
CRaSHディレクトリ構造には、3つの重要なディレクトリ cmd、bin、、および conf:が含まれています。
bin ディレクトリには、CRaSHを開始するためのスタンドアロンCLIスクリプトが含まれています。
cmd ディレクトリには、すぐに使用できるすべてのコマンドが含まれています。 また、ここにカスタムコマンドを配置できます。 これについては、この記事の後半のセクションで説明します。
CLIを開始するには、 bin に移動し、 crack.batまたはcrash.sh:のいずれかを使用してスタンドアロンインスタンスを起動します。
3. SpringWebアプリケーションへのCRaSHの埋め込み
CRaSHをSpringWebアプリケーションに埋め込みましょう。 まず、いくつかの依存関係が必要になります。
<dependency>
<groupId>org.crashub</groupId>
<artifactId>crash.embed.spring</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.crashub</groupId>
<artifactId>crash.cli</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.crashub</groupId>
<artifactId>crash.connectors.telnet</artifactId>
<version>1.3.2</version>
</dependency>
MavenCentralで最新バージョンを確認できます。
CRaSHはJavaとGroovyの両方をサポートしているため、Groovyスクリプトを機能させるにはGroovyを追加する必要があります。
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<version>3.0.0-rc-3</version>
</dependency>
最新バージョンはMavenCentralにもあります。
次に、 web.xml:にリスナーを追加する必要があります
<listener>
<listener-class>org.crsh.plugin.WebPluginLifeCycle</listener-class>
</listener>
リスナーの準備ができたら、WEB-INFディレクトリにプロパティとコマンドを追加しましょう。 crack という名前のディレクトリを作成し、その中にコマンドとプロパティを配置します。
アプリケーションをデプロイしたら、telnet経由でシェルに接続できます。
telnet localhost 5000
crack.telnet.port プロパティを使用して、crack.propertiesファイルのtelnetポートを変更できます。
または、Spring beanを作成してプロパティを構成し、コマンドのディレクトリの場所を上書きすることもできます。
<bean class="org.crsh.spring.SpringWebBootstrap">
<property name="cmdMountPointConfig" value="war:/WEB-INF/crash/commands/" />
<property name="confMountPointConfig" value="war:/WEB-INF/crash/" />
<property name="config">
<props>
<prop key="crash.telnet.port">5000</prop>
</props>
</property>
</bean>
4. CRaSHとSpringBoot
Spring Bootは、リモートシェルを介してCRaSHを組み込み販売として提供するために使用されていました。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-remote-shell</artifactId>
</dependency>
crash.sh <PID>
PID> そのJVMインスタンスのプロセスID。 ホストで実行されているJVMのプロセスIDを取得するには、 jps
5. カスタムコマンドの作成
それでは、クラッシュシェルのカスタムコマンドを作成しましょう。 コマンドを作成して使用するには、2つの方法があります。 1つはGroovyを使用し、Javaも使用します。 それらを1つずつ調べていきます。
5.1. Groovyによるコマンド
まず、Groovyを使用して簡単なコマンドを作成しましょう。
class message {
@Usage("show my own message")
@Command
Object main(@Usage("custom message") @Option(names=["m","message"]) String message) {
if (message == null) {
message = "No message given...";
}
return message;
}
}
@Command アノテーションはメソッドをコマンドとしてマークし、 @Usage はコマンドの使用法とパラメーターを表示するために使用され、最後に@Optionはコマンドに渡されるパラメーター。
コマンドをテストしてみましょう:
5.2. Javaを使用したコマンド
Javaで同じコマンドを作成しましょう:
public class message2 extends BaseCommand {
@Usage("show my own message using java")
@Command
public Object main(@Usage("custom message")
@Option(names = { "m", "message" }) String message) {
if (message == null) {
message = "No message given...";
}
return message;
}
}
コマンドはGroovyのコマンドと似ていますが、ここではorg.crsh.command.BaseCommand。を拡張する必要があります。
それでは、もう一度テストしてみましょう。
6. 結論
このチュートリアルでは、CRaSHをスタンドアロンアプリケーションとしてインストールし、SpringWebアプリケーションに埋め込む方法について説明しました。 また、GroovyとJavaを使用してカスタムコマンドを作成しました。
いつものように、コードはGitHubで入手できます。