IntelliJ에서 사용자 정의 패키지 빌드
- 최종 업데이트2024/09/11
IntelliJ에서 사용자 정의 패키지 빌드
Java IntelliJ를 사용하여 Automation 360에서 Control Room에 패키지로 업로드할 수 있는 JAR 파일을 생성하고 컴파일합니다.
전제 조건
작업 패키지를 구축하려면 JDK 및 Java IntelliJ에 대한 기본적인 이해가 필요합니다. 다음 소프트웨어와 파일이 설치되어 있어야 합니다.
프로시저
- Automation Anywhere 패키지 SDK의 최신 릴리스를 다운로드하십시오. 패키지 SDK의 최신 릴리스는 이전 패키지 SDK 릴리스 정보를 참조하십시오.
- SDK 패키지의 콘텐츠를 압축한 zip 파일을 로컬 디렉터리에 풉니다.
- 폴더 이름을 A360-package-sdk-<version number>에서 MetricToImperial로 변경합니다.
-
IntelliJ IDEA에서 파일 > 열기로 이동하고 C:\<SavedLocation>\MetricToImperial에서 프로젝트를 엽니다.
-
프로젝트 루트에서 settings.gradle 파일을 엽니다.
rootProject.name = 'MetricToImperial'
설정
- Src > main > resources > package.template에 있는 package.template 파일을 엽니다.
-
패키지 이름을 A360DemoPackage에서 MetricToImperial로 변경합니다.
IntelliJ에서 동기화 버튼을 클릭하여 프로젝트를 업데이트합니다. -
locales json에서 패키지 이름 업데이트: src > main > resources > locales > en_US.json으로 이동합니다.
- en_US.json 파일을 열고 필요한 label 필드를 A360DemoPackage에서 MetricToImperial로 업데이트합니다. 선택적 설명을 업데이트합니다.
- en_US.json 파일의 나머지 모든 줄을 삭제합니다.
- 샘플 패키지를 삭제하고, src > main > java > com.automationanyhwere.botcommand로 이동하고, samples.commands를 삭제하고 samples 패키지를 삭제합니다.
- 새 패키지를 생성하고 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 > main > resources > locales > 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에서 프로젝트에 필요하지 않은 종속성을 제거합니다.
주: 사용자 정의 패키지 버전은 의미론적 버전 관리 사양을 충족해야 합니다. 유효한 버전은 마침표(
.
)로 구분된 세 가지 숫자(MAJOR.MINOR.PATCH
)로 구성됩니다.PATCH
버전 뒤에는 하이픈(-
)으로 분리된 사전 릴리스 식별자를 선택적으로 포함할 수 있습니다. 밑줄(_
)은 허용되지 않습니다.유효한 패키지 버전의 예:
-
2.0.2-20210701-202149
-
2.0.2
-
2.0.2-test-20210701-202149
-
-
새 디렉터리를 생성하고, src를 마우스 오른쪽 버튼으로 클릭한 다음 새로 만들기 > 디렉터리를 선택합니다.
- 이름 필드에 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
BUILD SUCCESSFUL 메시지가 나타납니다.기존 파일을 자동으로 삭제할 수 없으면 빌드에 실패할 수 있으며 태스크 실행이 실패했음을 나타내는 clean이라는 시스템 메시지가 표시됩니다. 이 경우 탐색기 창을 닫고 빌드를 다시 실행하십시오.