Crear un paquete personalizado en IntelliJ
Descargar como PDF
- Última actualización2024/09/11
Crear un paquete personalizado en IntelliJ
Utilice Java IntelliJ para crear y compilar un archivo JAR que puede cargar como paquete a su Control Room en Automation 360.
Antes de empezar
Se requiere una comprensión básica de JDK y Java IntelliJ para crear un paquete de acción. Asegúrese de haber instalado los siguientes softwares y archivos:
Procedimiento
- Descargue la última versión del Automation AnywherePaquete de SDK. Para ver la última versión del paquete de SDK, consulte Notas de la versión del SDK del paquete anterior.
- Descomprima el contenido del paquete de SDK en cualquier directorio local.
- Cambie el nombre de la carpeta de A360-package-sdk-<version number> a MetricToImperial.
-
En IntelliJ IDEA, vaya a Archivo > Abrir y abra el proyecto en C:\<SavedLocation>\MetricToImperial.
-
En la raíz del proyecto, abra el archivo settings.gradle. Establezca el
rootProject.name = 'MetricToImperial'
- Abra el archivo package.template ubicado en src > principal > recursos > package.template.
-
Cambie el nombre del paquete de A360DemoPackage a MetricToImperial.
Haga clic en el botón Sincronizar en IntelliJ para actualizar el proyecto. -
Actualice el nombre del paquete en locales json: vaya a src > principal > recursos > locales > en_US.json.
- Abra el archivo es_US.json y actualice el campo obligatorio etiqueta de A360DemoPackage a MetricToImperial. Actualice la descripción opcional.
- Elimine todas las demás líneas restantes del archivo en_US.json.
- Elimine los paquetes de muestra, vaya a src > principal > java > com.automationanyhwere.botcommand, elimine samples.commands y elimine los paquetes samples.
- Cree un nuevo paquete, haga clic con el botón derecho en la carpeta java y seleccione Nuevo > Paquete. Ingrese el nuevo nombre del paquete como metrictoimperial.commands.
-
Cree una nueva Clase de Java, haga clic con el botón derecho en el paquete metrictoimperial.commands y seleccione Nueva > Clase de Java. Ingresar el nombre CMtoINCH: para la nueva clase.
-
Abra la clase CMtoINCH. Copie y pegue el siguiente código sobre la declaración de definición de clase:
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)
- Dentro de la clase CMtoINCH, copie y pegue el siguiente código:
//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); }
Para importar los namespaces, haga clic en las notaciones rojas resaltadas y presione la tecla ALT+ENTER y seleccione Importar, que importa automáticamente los namespaces según las anotaciones y los datatypes.
-
Abra la clase CMtoINCH. Copie y pegue el siguiente código sobre la declaración de definición de clase:
-
Configure el archivo en_US.json, vaya a src > principal > recursos > locales > en_US.json y agregue los siguientes campos después de los valores de etiqueta y descripción:
"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"
-
Actualice la anotación CommandPkg. Descargue los íconos desde Github.
- Descargue ruler_icon.svg desde github y haga clic con el botón derecho en la imagen y guarde la imagen como ruler_icon.svg.
- Descargue iconwhite.svg desde github, haga clic con el botón derecho en la imagen y guarde la imagen iconwhite.svg.
-
Copie ambos archivos en la carpeta src > principal > recursos > íconos.
-
Abra el archivo build.gradle en la raíz del proyecto. Después de la sección de dependencias, pero antes de la última etiqueta de cierre, copie y pegue el siguiente código:
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" }
-
Actualice el número de versión y elimine las dependencias que no sean necesarias para su proyecto en build.gradle.
Nota: Las versiones de paquetes personalizados deben cumplir con la especificación de versiones semánticas. Una versión válida consta de tres números (
MAJOR.MINOR.PATCH
) separados por puntos (.
). Como alternativa, puede incluir un identificador de prelanzamiento después de la versiónPATCH
, separada por un guion (-
). Los guiones bajos (_
) no están permitidos.Ejemplos de versiones de paquetes válidas:
2.0.2-20210701-202149
2.0.2
2.0.2-test-20210701-202149
-
Cree un nuevo directorio, haga clic con el botón derecho en src y seleccione Nuevo > Directorio.
- En el campo Nombre, ingrese test\java o seleccione la sugerencia test\java de los Conjuntos de fuentes de gradación.
- Cree un nuevo paquete, haga clic con el botón derecho en el directorio java y seleccione Nuevo > Paquete.
- Ingrese el nombre del paquete recién creado: metrictoimperial.commands.
-
Cree una nueva clase Java, haga clic con el botón derecho y seleccione Nueva > Clase de Java. Ingresar el nombre para la nueva clase CMtoINCHTest.
Dentro de la clase CMtoINCHTest, copie y pegue el siguiente código:
@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); }
- Guarde el proyecto Archivo > Guardar todo.
-
Diseñar el paquete.
Puede utilizar la IU de IntelliJ o la línea de comandos. Si está usando la línea de comandos:
- Abra una ventana de la terminal y navegue hasta el directorio MetricToImperial .
- Para crear el proyecto, introduzca el siguiente comando: gradlew.bat clean build shadowJar
Aparece un mensaje COMPILACIÓN CORRECTA.A veces, una compilación puede fallar porque los archivos existentes no se pudieron eliminar automáticamente y aparece un mensaje del sistema que indica que la ejecución falló para la tarea: limpiar. Si esto ocurre, cierre las ventanas del explorador y vuelva a ejecutar la compilación.