Mostrando entradas con la etiqueta jar vs build task. Mostrar todas las entradas
Mostrando entradas con la etiqueta jar vs build task. Mostrar todas las entradas

lunes, 17 de mayo de 2021

Gradle-7 (3) Crear una libreria jar. La dependencia Jakarta como providedCompile o compileOnly. Plugin war. Tareas build vs jar

 Con el  nuevo proceso de cambio de nombres desde "javax" a "jakarta", hay que tener cuidado.

Para las librerías que solo se usan en compilación, se puede utilizar estas 2 definiciones de dependencias en "dependencies {" del build.gradle

  • compileOnly (si se va a crear el jar solamente)
  • providedCompile (solo si se usa elplugin "war")
Por tanto si vamos a crer un jar, debemos de defiirlo como:

compileOnly "jakarta.annotation:jakarta.annotation-api:2.0.0"

Si hubiéramos puesto la segunda opcion (providedCompile "jakarta.annotation:jakarta.annotation-api:2.0.0") sin haberle metido la línea "id war" en "plugins {" del build.gradle, hubieramos tenido este error:

Could not run phased build action using connection to Gradle distribution 'https://services.gradle.org/distributions/gradle-7.0.2-bin.zip'.

cannot assign instance of java.util.Collections$EmptyList to field java.lang.StackTraceElement.moduleVersion of type java.lang.String in instance of java.lang.StackTraceElement B-DAO-lib line 0 Gradle Error Marker

En caso que hubiésemos utilizado el plugin "id war" con providedCompile, NO CREARÁ EL FICHERO JAR, a menos que le demos a la task "jar" en vez de "build"