IntelliJ でのカスタム パッケージの構築
- 最終更新日2024/09/11
IntelliJ でのカスタム パッケージの構築
Java IntelliJ を使用して、Automation 360 の Control Room にパッケージとしてアップロードできる JAR ファイルを作成してコンパイルします。
前提条件
アクション パッケージをビルドするには、JDK と Java IntelliJ の基本的な理解が必要です。以下のソフトウェアとファイルがインストールされていることを確認してください。
手順
- Automation Anywhere パッケージ SDK の最新リリースをダウンロードします。パッケージ SDK の最新リリースについては、以前のパッケージ SDK リリース ノート を参照してください。
- SDK パッケージを任意のローカル ディレクトリに解凍します。
- A360-package-sdk-<version number> から MetricToImperial にフォルダー名を変更します。
-
IntelliJ IDEA で、[ファイル] > [開く] に移動し、C:\<SavedLocation>\MetricToImperial でプロジェクトを開きます。
-
プロジェクト ルート内の settings.gradle ファイルを開きます。
rootProject.name = 'MetricToImperial'
を設定します
- [src] > [メイン] > [リソース] > [パッケージ テンプレート] にある package.template ファイルを開きます。
-
パッケージ名を A360DemoPackage から MetricToImperial に変更します。
IntelliJ で [同期] ボタンをクリックすると、プロジェクトが更新されます。 -
[locales json] でパッケージ名を更新します。[src] > [メイン] > [リソース] > [ロケール] > [en_US.json] に移動します。
- [en_US.json] ファイルを開き、[必須] ラベルフィールドを A360DemoPackage から MetricToImperial に更新します。オプションの説明を更新します。
- [en_US.json] ファイルの残りの行をすべて削除します。
- サンプルパッケージを削除し、[src] > [メイン] > [java] > [com.automationanyhwere.botcommand] に移動し、samples.commands を削除して、サンプルパッケージを削除します。
- 新しいパッケージを作成し、java フォルダーを右クリックして、[新規] > [パッケージ] を選択します。新しいパッケージ名に「metrictoimperial.commands」と入力します。
-
新しい [Java クラス] を作成し、metrictoimperial.commands パッケージを右クリックして、[新規] > [Java クラス] の順に選択します。新しいクラスの名前 CMtoINCH: を入力します。
-
[CMtoINCH] クラスを開きます。次のコードをコピーしてクラス定義ステートメントの上に貼り付けます。
import static com.automationanywhere.commandsdk.model.DataType.NUMBER; //BotCommand makes a class eligible for being considered as an action. @BotCommand //CommandPks adds required information to be dispalable on GUI. @CommandPkg( //Unique name inside a package and label to display. name = "CMtoInch", label = "[[CMtoINCH.label]]", node_label = "[[CMtoINCH.node_label]]", description = "[[CMtoINCH.description]]", icon = "ruler_icon.svg", //Return type information. return_type ensures only the right kind of variable is provided on the UI. return_label = "[[CMtoINCH.return_label]]", return_type = NUMBER, return_required = true)
- [CMtoINCH] クラス内で、次のコードをコピーして貼り付けます。
//Identify the entry point for the action. Returns a Value<String> because the return type is String. @Execute public NumberValue action( //Idx 1 would be displayed first, with a text box for entering the value. @Idx(index = "1", type = AttributeType.NUMBER) //UI labels. @Pkg(label = "[[CMtoINCH.CMInput.label]]") //Ensure that a validation error is thrown when the value is null. @NotEmpty Double CMInput) { //Internal validation, to disallow empty inputs. No null check needed as we have NotEmpty on CMInput. if ("".equals(CMInput.toString().trim())) throw new BotCommandException("Input of CM is required"); Number result; try { //Conversion logic result = CMInput * 0.393701; } catch (Exception e) { //Throw custom error message throw new BotCommandException("Unable to convert " + CMInput.toString() + "cm to inches"); } //Return NumberValue. return new NumberValue(result); }
namespaces をインポートするには、ハイライトされた赤い表記をクリックし、ALT+ENTER キーを押して、[インポート] を選択します。これにより、注釈と datatypes に基づいて namespaces が自動的にインポートされます。
-
[CMtoINCH] クラスを開きます。次のコードをコピーしてクラス定義ステートメントの上に貼り付けます。
-
[en_US.json] ファイルを構成し、[src] > [メイン] > [リソース] > [ロケール] > [en_US.json] に移動して、ラベルと説明の値の後に次のフィールドを追加します。
"CMtoINCH.label" : "cm to inches", "CMtoINCH.node_label": "cm to inches", "CMtoINCH.description" : "Convert centimeters to inches", "CMtoINCH.return_label" : "Assign the Output in Inches to a Number Variable", "CMtoINCH.CMInput.label" : "Centimeters to Convert to Inches"
- CommandPkg 注釈を更新します。Github からアイコンをダウンロードします。
-
プロジェクト ルート内の build.gradle を開きます。依存関係セクションの後、最後の終了タグの前に、次のコードをコピーして貼り付けます。
test { testLogging { exceptionFormat = 'full' } useTestNG() {} afterSuite { desc, result -> if (!desc.parent) println("${result.resultType} " + "(${result.testCount} tests, " + "${result.successfulTestCount} successes, " + "${result.failedTestCount} failures, " + "${result.skippedTestCount} skipped)") } maxHeapSize "3g" }
-
バージョン番号を更新し、プロジェクトに必要でない依存関係を build.gradle から削除します。
注: カスタム パッケージのバージョンは、セマンティック バージョニング仕様に準拠する必要があります。有効なバージョンは 3 つの数字 (
MAJOR.MINOR.PATCH
) をピリオド (.
) で区切ります。オプションでプレリリース識別子をPATCH
バージョンの後に含めて、ハイフンで (-
) で区切ります。アンダースコア (_
) は使用できません。有効なパッケージ バージョンの例:
-
2.0.2-20210701-202149
-
2.0.2
-
2.0.2-test-20210701-202149
-
-
新しいディレクトリを作成し、[src] を右クリックして、[新規] > [ディレクトリ] を選択します。
- [Name (名前)] フィールドに「test\java」を入力するか、[Gradle ソース セット] から [test\java] の提案を選択します。
- 新しいパッケージを作成し、java ディレクトリを右クリックして、[新規] > [パッケージ] を選択します。
- 新しく作成したパッケージの名前を入力します。metrictoimperial.commands。
-
新しい Java クラスを作成し、右クリックして [新規] > [Java クラス] を選択します。新しいクラスの名前 CMtoINCHTest を入力します。
CMtoINCHTest 内で、次のコードをコピーして貼り付けます。
@Test public void testCMtoINCH(){ Double validInput = 10.00; Double expectedOutput = 0.393701 * validInput; CMtoINCH testCM = new CMtoINCH(); Value<Double> result = testCM.action(validInput); Assert.assertEquals(result.get(), expectedOutput); }
- プロジェクトの [ファイル] > [すべて保存] を選択して保存します。
-
パッケージをビルドします。
IntelliJ UI またはコマンド ラインを使用できます。コマンド ラインを使用している場合、
- ターミナル ウィンドウを開いて、MetricToImperial ディレクトリに移動します。
- プロジェクトをビルドするには、次のコマンドを入力します。gradlew.bat clean build shadowJar
「ビルドに成功しました」というメッセージが表示されます。既存のファイルを自動的に削除できなかったためにビルドが失敗し、クリーンのタスクの実行に失敗したことを示すシステム メッセージが表示されることがあります。この場合は、explorer windows を閉じて、ビルドを再度実行します。