IntelliJ에서 사용자 지정 패키지 빌드

Java IntelliJ를 사용하여 Automation 360에서 Control Room에 패키지로 업로드할 수 있는 JAR 파일을 생성하고 컴파일합니다.

전제 조건

작업 패키지를 구축하려면 JDK 및 Java IntelliJ에 대한 기본적인 이해가 필요합니다. 다음 소프트웨어와 파일이 설치되어 있어야 합니다.

프로시저

  1. Automation Anywhere 패키지 SDK의 최신 릴리스를 다운로드하십시오. 패키지 SDK의 최신 릴리스는 이전 패키지 SDK 릴리스 정보를 참조하십시오.
  2. SDK 패키지의 콘텐츠를 압축한 zip 파일을 로컬 디렉터리에 풉니다.
  3. 폴더 이름을 A360-package-sdk-<version number>에서 MetricToImperial로 변경합니다.
  4. IntelliJ IDEA에서 파일 > 열기로 이동하고 C:\<SavedLocation>\MetricToImperial에서 프로젝트를 엽니다.
    IntelliJ 파일 열기
  5. 프로젝트 루트에서 settings.gradle 파일을 엽니다. rootProject.name = 'MetricToImperial' 설정
    Setting.gradle 프로젝트 이름
  6. src > main > resources > package.template에 있는 package.template 파일을 엽니다.
  7. 패키지 이름을 A360DemoPackage에서 MetricToImperial로 변경합니다.
    Package.Template 이름 필드의 이름 바꾸기
    IntelliJ에서 동기화 버튼을 클릭하여 프로젝트를 업데이트합니다.
  8. locales json에서 패키지 이름 업데이트: src > main > resources > locales > en_US.json으로 이동합니다.
    1. en_US.json 파일을 열고 필요한 label 필드를 A360DemoPackage에서 MetricToImperial로 업데이트합니다. 선택적 설명을 업데이트합니다.
    2. en_US.json 파일의 나머지 모든 줄을 삭제합니다.
  9. 샘플 패키지를 삭제하고, src > main > java > com.automationanyhwere.botcommand로 이동하고, samples.commands를 삭제하고 samples 패키지를 삭제합니다.
  10. 새 패키지를 생성하고 java 폴더를 마우스 오른쪽 버튼으로 클릭한 후 새로 만들기 > 패키지를 선택합니다. 새 패키지 이름을 metrictoimperial.commands로 입력합니다.
  11. Java 클래스를 만들고 metrictoimperial.commands 패키지를 마우스 오른쪽 버튼으로 클릭한 다음, 새로 만들기 > Java 클래스를 선택합니다. 새 클래스 CMtoINCH:의 이름을 입력합니다.
    1. 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)
    2. 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 Java 클래스
  12. 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"

    en_US.json 구성
  13. CommandPkg 주석을 업데이트합니다. Github에서 아이콘을 다운로드합니다.
    1. github에서 ruler_icon.svg를 다운로드 하고, 이미지를 마우스 오른쪽 단추로 클릭한 다음 이미지를 ruler_icon.svg로 저장합니다.
    2. github에서 iconwhite.svg를 다운로드 하고, 이미지를 마우스 오른쪽 단추로 클릭한 다음 이미지를 iconwhite.svg로 저장합니다.
    3. 두 파일을 src > main > resources > icons 폴더에 복사합니다.
      포드 아이콘
  14. 프로젝트 루트에서 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"
    }
  15. 버전 번호를 업데이트하고 build.gradle에서 프로젝트에 필요하지 않은 종속성을 제거합니다.
  16. 새 디렉터리를 생성하고, src를 마우스 오른쪽 버튼으로 클릭한 다음 새로 만들기 > 디렉터리를 선택합니다.
    1. 이름 필드에 test\java를 입력하거나 Gradle 소스 세트에서 test\java 제안을 선택합니다.
    2. 새 패키지를 생성하고, java 디렉터리를 마우스 오른쪽 버튼으로 클릭하고 새로 만들기 > 패키지를 선택합니다.
    3. 새로 생성된 패키지의 이름을 다음과 같이 입력합니다. metrictoimperial.commands.
  17. 새 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);
    }

    CM to INCH Test class
  18. 파일 > 모두 저장으로 프로젝트를 저장합니다.
  19. 패키지를 빌드합니다.
    IntelliJ UI 또는 커맨드 라인을 사용할 수 있습니다. 커맨드 라인을 사용하는 경우:
    1. 터미널 창을 열고 MetricToImperial 디렉터리로 이동합니다.
    2. 프로젝트를 구축하려면 다음 명령을 입력합니다. gradlew.bat clean build shadowJar
    BUILD SUCCESSFUL 메시지가 나타납니다.

    기존 파일을 자동으로 삭제할 수 없으면 빌드에 실패할 수 있으며 태스크 실행이 실패했음을 나타내는 clean이라는 시스템 메시지가 표시됩니다. 이 경우 탐색기 창을 닫고 빌드를 다시 실행하십시오.

다음 단계

Control Room에 사용자 지정 패키지 추가