#language es ~-[[es/DebianWiki/EditorGuide#translation|Traducción(es)]]: [[Java/Packaging|English]] - Español-~ <> == Introducción == Además de las herramientas habituales de empaquetado ''debhelper'' hay otras más específicas para tratar con paquetes Java. * [[DebPkg:javahelper]] para paquetes sin un sistema razonable de construcción o en combinación con sistemas de construcción para modificarlos y debianizarlos. * [[https://wiki.debian.org/Java/MavenRepoHelper| maven-repo-helper]] para añadir artefactos Maven a un paquete no mavenizado, * [[https://wiki.debian.org/Java/MavenDebianHelper|maven-debian-helper]] como herramienta de apoyo primaria para cualquier Maven y * [[https://wiki.debian.org/Java/GradleDebianHelper|gradle-debian-helper]] para proyectos basados en Gradle. Esta página informa acerca de flujos de empaquetado Java comunes en Debian y te indicará ejemplos reales que puedes usar como punto de partida para tus propios paquetes. == Contribuir a empaquetar paquetes Java == Cualquier ayuda empaquetando aplicaciones o bibliotecas nuevas o manteniendo actualizadas las existentes y sus dependientes es bienvenida. Actualmente la forma más fácil de enviar contribuciones es un ''pull request'' en [[https://salsa.debian.org/java-team]]. Tan solo 1. realiza tus cambios, 1. documenta todo en debian/changelog, 1. ponlo como UNRELEASED, 1. verifica que sus dependientes siguen funcionando y a continuación 1. haz un ''pull request''. Alternativamente puedes seguir las instrucciones de mentors.debian.net. https://mentors.debian.net/intro-maintainers Esto es útil si también quieres aprender el proceso general de empaquetado para Debian. La única diferencia es que en vez de solicitar esponsorización en la lista de correo de mentores general debes hacerlo en la específica para Java: debian-java@lists.debian.org. == Política de empaquetado para Java == En Debian, los paquetes Java se atienen como los demás a la [[https://www.debian.org/doc/debian-policy/|Política Debian]]. Hay elementos de la política específicos para Java documentados en la [[https://www.debian.org/doc/packaging-manuals/java-policy/|Política Debian para Java]]. == Javahelper == Javahelper es la herramienta Debian para realizar tareas de empaquetado Java como * instalar archivos jar en el directorio canónico /usr/share/java, * construir paquetes desde su código fuente sin un sistema de construcción razonable, * manipular archivos MANIFEST o * establecer el CLASSPATH. También puede ayudar a evitar parches creando automáticamente enlaces simbólicos a las bibliotecas del sistema. Javahelper está documentado en la página del paquete javahelper en '''/usr/share/doc/javahelper/tutorial.txt.gz''' y en [[https://people.debian.org/~apo/java/tutorial.html|esta réplica]]. Además del tutorial, sebdió una charla en DebConf10 abarcando el uso de javahelper. La charla está disponible como: * Video ([[http://meetings-archive.debian.net/pub/debian-meetings/2010/debconf10/high/1293_Packaging_with_javahelper.ogv|alta res]]; [[http://meetings-archive.debian.net/pub/debian-meetings/2010/debconf10/low/1293_Packaging_with_javahelper.ogv|baja res]]) La idea que subyace a javahelper es que la mayoría de los paquetes Java debieran ser triviales. La integración con debhelper y el secuenciador dh implica que no deberías necesitar nada en debian/rules, sólo unos pocos archivos en el directorio debian. Usando javahelper y DH7 tus archivos de reglas idealmente se parecerán a esto: {{{ #!/usr/bin/make -f export JAVA_HOME=/usr/lib/jvm/default-java %: dh $@ --with javahelper }}} Todo el trabajo lo hace javahelper trabajando con los archivos del directorio debian/. == Compilación Java == [[https://wiki.debian.org/Java/Packaging/Java101/|Esta sección]] explica los términos básicos y métodos para compilar a [[https://en.wikipedia.org/wiki/Bytecode | bytecode]] código fuente Java y para la creación de archivos jar. == Sin sistema de construcción == Hay algunos proyectos orígen (upstream) que no proporcionan un provide sistema de construcción en condiciones. En algunos casos resulta útil descargar los paquetes de código fuente desde Maven Central, que vendrán sin sistema de construcción, solamente código fuente. Por todo ello Javahelper es la herramienta perfecta para compilar el código y crear un paquete Debian como mándan los cánones. [[https://wiki.debian.org/Java/Packaging/NoBuildSystem | ejemplos sin sistema de construcción]]. == Sistemas de construcción == Hay unos pocos sistemas de construcción en uso por los programas de Java. === Ant === Si tu paquete usa Ant entonces debhelper y el secuenciador dh deberían detectar automáticamente el build.xml y llamar a las cosas apropiadamente. [[https://wiki.debian.org/Java/Packaging/Ant | Ejemplos con Ant]]. === Maven === Usa [[Java/MavenDebianHelper|maven-debian-helper]] para proyectos Maven normales, usa [[Java/MavenRepoHelper|maven-repo-helper]] combinándolo con otros sistemas de construcción para proporcionar artefactos Maven y maven-ant-helper para revertir la construcción hacia Ant - útil sobre todo para construir una biblioteca que sea parte de las dependencias de construcción Build-Depends del propio Maven. [[https://wiki.debian.org/Java/Packaging/Maven | Ejemplos con Maven]] === Gradle === Usa DebianPackage:gradle-debian-helper. A menudo los proyectos Gradle necesitan parchear los scripts de construcción de todos modos porque la lógica de construcción varía de proyecto a proyecto. Este ayudante está actualmente en fase temprana y principalmente ayuda con la sustitución de coordenadas Maven, así que Gradle empleará el ''/usr/share/maven-repo'' local de Debian en lugar de descargar dependencias desde internet. Ver también [[https://wiki.debian.org/Java/Packaging/Gradle | ejemplos con Gradle]]. == autopkgtest == Se necesita AYUDA e información para DebianPackage:autopkgtest ... == Preguntas frecuentes y soluciones == Las [[Java/Packaging/FAQ | Preguntas frecuentes respecto a empaquetado Java]] proporcionan respuestas y explican algunos mensajes de fallo habituales proporcionando soluciones. ---- CategoryJava