Resolver Dependencias en GitHub
🔄 Migración y resolución de dependencias de bundles y módulos en GitHub
Hola, Partner de Etendo 👋. Hemos migrado los bundles y módulos desde Nexus a GitHub. Esto nos permite aprovechar la estabilidad de GitHub y tener los paquetes asociados a cada bundle y las versiones en el mismo repositorio. Aquí le proporcionamos una guía paso a paso para ayudarle a realizar la transición.
📝 Tutorial
📦 Bundles migrados
Los siguientes bundles se han migrado a GitHub, junto con todas sus versiones. Compruebe la compatibilidad con Etendo Core; en caso de que tenga una versión antigua de Etendo, debe actualizar antes. Recomendamos migrar a Etendo 23.2.0 o superior y las dependencias a las últimas versiones soportadas.
| Bundle | Javapakage | Versión | Desde Core | A core |
|---|---|---|---|---|
| Sales Extensions | com.etendoerp.sales.extensions | 1.5.0 | 22.1.0 | 23.2.x |
| Sales Extensions ES | com.etendoerp.sales.extensions.es_es | 1.4.0 | 22.1.0 | 23.2.x |
| Financial Extensions | com.etendoerp.financial.extensions | 1.8.0 | 23.1.4 | 23.2.x |
| Financial Extensions ES | com.etendoerp.financial.extensions.es_es | 1.2.0 | 23.1.4 | 23.2.x |
| Production Extensions | com.etendoerp.production.extensions. | 1.3.0 | 22.1.0 | 23.2.x |
| Production Extensions ES | com.etendoerp.production.extensions.es_es | 1.1.0 | 22.1.0 | 23.2.x |
| Platform Extensions | com.etendoerp.platform.extensions | 1.6.0 | 23.2.0 | 23.2.x |
| Platform Extensions ES | com.etendoerp.platform.extensions.es_es | 1.2.0 | 22.1.0 | 23.2.x |
| Warehouse Extensions | com.etendoerp.warehouse.extensions | 1.3.0 | 23.1.4 | 23.2.x |
| Warehouse Extensions ES | com.etendoerp.warehouse.extensions.es_es | 1.2.0 | 23.1.4 | 23.2.x |
| Essential Extensions | com.etendoerp.essentials.extensions | 1.1.0 | 23.1.4 | 23.2.x |
| Essential Extensions ES | com.etendoerp.essentials.extensions.es_es | 1.0.0 | 23.1.4 | 23.2.x |
| Localizacion Española | com.etendoerp.localization.spain.extensions | 1.4.0 | 22.4.3 | 23.2.x |
🚀 Proceso de migración
-
Actualizar el archivo
settings.gradle: deberá actualizar su archivosettings.gradlepara añadir el nuevo repositorio de GitHub.settings.gradlepluginManagement { repositories { mavenCentral() gradlePluginPortal() maven { url 'https://maven.pkg.github.com/etendosoftware/com.etendoerp.gradleplugin' credentials { username "${githubUser}" password "${githubToken}" } } maven { url 'https://repo.futit.cloud/repository/maven-public-snapshots' } } } // Add modules subprojects new File("${this.rootDir}/modules").listFiles().each { if (it.directory && new File(it, 'build.gradle').exists()) { include(":modules:${it.name}") } } rootProject.name = "etendo" -
Actualizar el plugin de Gradle de Etendo: necesita actualizar
com.etendoerp.gradleplugina la versión 1.1.0 o posterior. -
Configuración de GitHub: necesita configurar su usuario y token de GitHub para tener acceso de lectura a los paquetes de Etendo. Puede crear el token siguiendo la guía técnica de uso de repositorios.
-
Comprobación de dependencias: revise las dependencias en su archivo
build.gradlede Etendo para asegurarse de que hay bundles que pueden actualizarse a versiones publicadas en GitHub. Si todavía no está listo para migrar, no hay problema: Nexus estará disponible hasta marzo de 2024. -
Resolver nuevas dependencias
Consideraciones
Una restricción que tiene GitHub es que los paquetes publicados deben tener el javapackage en minúsculas, por lo que tuvimos que refactorizar los módulos de traducción, que anteriormente terminaban con el sufijo "_ES". Ahora, todos los paquetes, incluidas las traducciones de bundles, tienen su artefacto en minúsculas.
Warning
Una consideración especial son los módulos org.openbravo.module.invoiceTaxReportEnhanced30 y org.openbravo.module.invoiceTaxReportEnhanced30.en_ES, que pertenecen al bundle Spain Localisation y también fueron refactorizados.
Esto afecta a los entornos actuales. Para corregirlo, debemos:
-
Si el entorno tiene las dependencias como "moduleDeps", en fuentes, tendremos que eliminar de la carpeta
/modulestodas las que terminen en "_ES".Proporcionamos un script para eliminar todos los módulos que podrían resolverse desde Nexus y, a continuación, volver a descargarlos desde GitHub.
#!/bin/bash ## Define the list of modules to be deleted modules=("com.etendoerp.accounting.templates" "com.etendoerp.accounting.templates.es_ES" "com.etendoerp.advanced.financial.docs.processing" "com.etendoerp.advanced.financial.docs.processing.es_ES" "com.etendoerp.advanced.financial.docs.processing.template" "com.etendoerp.advanced.intercompany" "com.etendoerp.advanced.intercompany.es_ES" "com.etendoerp.advanced.work.effort" "com.etendoerp.advanced.work.effort.es_ES" "com.etendoerp.asyncprocess" "com.etendoerp.bankingpool" "com.etendoerp.bankingpool.es_ES" "com.etendoerp.bulk.posting" "com.etendoerp.bulk.posting.es_ES" "com.etendoerp.etendorx" "com.etendoerp.financial.extensions" "com.etendoerp.financial.extensions.es_ES" "com.etendoerp.financial.reports.advanced" "com.etendoerp.financial.reports.advanced.es_ES" "com.etendoerp.gljournal.advanced" "com.etendoerp.gljournal.advanced.es_ES" "com.etendoerp.localization.spain.extensions" "com.etendoerp.payment.removal" "com.etendoerp.payment.removal.es_ES" "com.etendoerp.payment.removal.template" "com.etendoerp.platform.extensions" "com.etendoerp.platform.extensions.es_ES" "com.etendoerp.printdocumentws" "com.etendoerp.production.extensions" "com.etendoerp.production.extensions.es_ES" "com.etendoerp.quotation" "com.etendoerp.quotation.es_ES" "com.etendoerp.quotation.template" "com.etendoerp.reactivate.warehouse.documents" "com.etendoerp.reactivate.warehouse.documents.es_ES" "com.etendoerp.reactivate.warehouse.documents.template" "com.etendoerp.reactor" "com.etendoerp.sales.extensions" "com.etendoerp.sales.extensions.es_ES" "com.etendoerp.stock.history" "com.etendoerp.stock.history.es_ES" "com.etendoerp.warehouse.extensions" "com.etendoerp.warehouse.extensions.es_ES" "com.etendoerp.webhookevents" "com.exos.erp.reportcachemanagement" "com.smf.asset.amortization.report" "com.smf.currency.apiconfig" "com.smf.currency.apiconfig.es_ES" "com.smf.currency.conversionrate" "com.smf.currency.conversionrate.es_ES" "com.smf.gljournal.reverse" "com.smf.gljournal.reverse.template" "com.smf.jobs.defaults.es_ES" "com.smf.ws.printdocument" "org.openbravo.advpaymentmngt.es_ES" "org.openbravo.alerts.accounting30" "org.openbravo.alerts.accounting30.es_ES" "org.openbravo.client.application.es_ES" "org.openbravo.client.htmlwidget.es_ES" "org.openbravo.client.kernel.es_ES" "org.openbravo.client.myob.es_ES" "org.openbravo.client.querylist.es_ES" "org.openbravo.client.widgets.es_ES" "org.openbravo.finance.checkprinting" "org.openbravo.finance.checkprinting.es_ES" "org.openbravo.financial.bpsettlement" "org.openbravo.financial.bpsettlement.es_ES" "org.openbravo.financial.paymentreport.es_ES" "org.openbravo.localization.spain30" "org.openbravo.localization.spain.referencedata.accounts" "org.openbravo.localization.spain.referencedata.accounts.pymes" "org.openbravo.localization.spain.referencedata.taxes" "org.openbravo.localization.spain.referencedata.translation.esES" "org.openbravo.module.aeat190.es" "org.openbravo.module.aeat303.es" "org.openbravo.module.aeat347apr.es" "org.openbravo.module.aeat347apr.es.es_ES" "org.openbravo.module.aeat349.es" "org.openbravo.module.aeat390.es" "org.openbravo.module.bptaxidkey" "org.openbravo.module.cifnifvalidator" "org.openbravo.module.cifnifvalidator.es_ES" "org.openbravo.module.countryisocode" "org.openbravo.module.cuaderno43.es" "org.openbravo.module.epigrafes.iae.es" "org.openbravo.module.eucountries" "org.openbravo.module.finactvalidator.es" "org.openbravo.module.incoterms" "org.openbravo.module.intrastat" "org.openbravo.module.intrastat.es_ES" "org.openbravo.module.intrastat.spain" "org.openbravo.module.invoicesregisterbook" "org.openbravo.module.invoicesregisterbook.es_ES" "org.openbravo.module.invoicesregisterbook.estaxes" "org.openbravo.module.invoiceTaxReportEnhanced30" "org.openbravo.module.invoiceTaxReportEnhanced30.es_ES" "org.openbravo.module.organization.representative.es" "org.openbravo.module.paymentmethod.type" "org.openbravo.module.remittance" "org.openbravo.module.remittance.es_ES" "org.openbravo.module.sii" "org.openbravo.module.sii.es_ES" "org.openbravo.module.sii.template" "org.openbravo.module.taximprovements.ES" "org.openbravo.module.taximprovements.es_ES" "org.openbravo.module.taxreportlauncher" "org.openbravo.module.taxreportlauncher.es" "org.openbravo.numbertoword" "org.openbravo.numbertoword_en" "org.openbravo.numbertoword_es" "org.openbravo.numbertoword.es_ES" "org.openbravo.proflocalization.spain.dataset" "org.openbravo.reports.ordersawaitingdelivery.es_ES" "org.openbravo.service.datasource.es_ES" "org.openbravo.service.integration.google.es_ES" "org.openbravo.service.integration.openid.es_ES" "org.openbravo.spain.regions" "org.openbravo.spanishdefaultdata.paymentmethods" "org.openbravo.spanishdefaultdata.paymentterms" "org.openbravo.userinterface.selector.es_ES" "org.openbravo.userinterface.smartclient.es_ES" "org.openbravo.utility.multiplebpselector" "org.openbravo.utility.multiplebpselector.es_ES" "org.openbravo.util.javax.xml.soap" "org.openbravo.util.saaj.impl" "org.openbravo.v3.translation.pack.es_ES") ## Define the modules directory module_directory="./modules" ## Iterate over each module and delete it for module in "${modules[@]}"; do if [ -d "${module_directory}/${module}" ]; then echo "Deleting ${module_directory}/${module}..." rm -rf "${module_directory}/${module}" else echo "Directory ${module_directory}/${module} does not exist" fi done echo "Modules deletion has been completed."Warning
Asegúrese de que los módulos no tienen personalizaciones; de lo contrario, se eliminarán los cambios locales.Copie este código y cree un archivo
deleteNexusDependencies.shen el proyecto raíz de Etendo; ejecutechmod +x deleteNexusDependencies.shpara dar permisos de ejecución y, a continuación, ejecute./deleteNexusDependencies.shpara eliminar las dependencias. -
Modifique el
build.gradlede su proyecto y cambie las dependencias a minúsculas. Por ejemplo: - Ejecute la tarea
./gradlew expandModulespara descargar las nuevas dependencias. - Ejecute
./gradlew update.database smartbuildpara recompilar el entorno.
Si las dependencias se declaran como implementation, esto significa que están en formato JAR; simplemente cambie las mayúsculas a minúsculas.
Por ejemplo:
implementation('com.etendoerp:financial.extensions.es_ES:<version>')
// Replace by
implementation('com.etendoerp:financial.extensions.es_es:<version>')
A continuación, ejecute ./gradlew update.database smartbuild; esto descargará dinámicamente las dependencias y compilará el entorno de nuevo.
Info
También es posible que en el build.gradle haya una combinación de ambos tipos de dependencias; debe seguir ambos pasos.
Success
Recomendamos utilizar las dependencias en formato JAR, manteniendo un espacio de trabajo más limpio y un proceso de actualización más sencillo. Esta es una buena oportunidad para migrar.
Failure
Recuerde: Nexus seguirá estando disponible hasta marzo de 2024, por lo que tiene tiempo para realizar esta transición 🕑. Esperamos que esta guía le resulte útil.
Si encuentra cualquier incidencia o necesita ayuda adicional, no dude en ponerse en contacto con nuestro servicio de soporte🚑.
This work is licensed under CC BY-SA 2.5 ES by Futit Services S.L.