Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

321
Vistas
Java: ¿Cómo acceder a la información del metarchivo desde el complemento a prueba de fallas de maven?

Quiero acceder a información como la versión de implementación almacenada en el archivo jar. Esto parece funcionar bastante bien, en cualquier técnica pero siempre basado en el cargador de clases.

Si quiero probar en mi entorno maven, por supuesto que no puedo usar el complemento seguro, porque esto es antes de empaquetarlo en el contenedor. Por lo tanto, debo usar el complemento a prueba de fallas.

Pero entonces ninguna de las técnicas funciona, muy probablemente, debido a alguna magia oscura relacionada con los cargadores de clases.

La forma más sencilla de obtener la versión de implementación es simplemente

 this.getClass().getPackage().getImplementationVersion()

que se lee de META-INF/MANIFEST.MF en el contenedor que se parece a algo

 Name: eu/simuline/octave/ Extension-name: eu.simuline.octave Specification-Version: 0.7 Implementation-Version: 0.7-SNAPSHOT

Tal vez no se necesita la extensión, lo que se necesita es el nombre de la sección que se deriva del nombre del paquete de una manera obvia (la barra diagonal parece vital ;-)). Pero como se dijo, esto funciona solo en un contexto productivo, no dentro de las pruebas con un complemento a prueba de fallas. Luego, el código Java devuelve 0.7-SNAPSHOT , de lo contrario, simplemente devuelve null , lo que significa que, según los documentos de la API, la versión es desconocida... bueno.

¿Qué puedo hacer para incluir metainformación en las pruebas maven?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Investigué un poco sobre el complemento a prueba de fallas. Por ejemplo, correr con

 mvn -X verify

desvela

 INFO] --- maven-failsafe-plugin:3.0.0-M5:verify (run-tests) @ javaoctave --- [DEBUG] Configuring mojo org.apache.maven.plugins:maven-failsafe-plugin:3.0.0-M5:verify from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-failsafe-plugin:3.0.0-M5, parent: jdk.internal.loader.ClassLoaders$AppClassLoader@277050dc] [DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-failsafe-plugin:3.0.0-M5:verify' with basic configurator --> [DEBUG] (s) basedir = /home/ernst/OpenSource/OctaveInJavaGit/octaveInJava/javaoctave [DEBUG] (s) reportsDirectory = /home/ernst/OpenSource/OctaveInJavaGit/octaveInJava/javaoctave/target/failsafe-reports [DEBUG] (f) session = org.apache.maven.execution.MavenSession@1416a80a [DEBUG] (s) skip = false [DEBUG] (f) summaryFile = /home/ernst/OpenSource/OctaveInJavaGit/octaveInJava/javaoctave/target/failsafe-reports/failsafe-summary.xml [DEBUG] (s) testClassesDirectory = /home/ernst/OpenSource/OctaveInJavaGit/octaveInJava/javaoctave/target/test-classes [DEBUG] (s) testFailureIgnore = false [DEBUG] -- end configuration -- [DEBUG] Failsafe report directory: /home/ernst/OpenSource/OctaveInJavaGit/octaveInJava/javaoctave/target/failsafe-reports

Tenga en cuenta el testClassesDirectory . Pensé que el complemento accede al jar creado en el paquete de fase de ciclo de vida anterior
pero obviamente esto no es cierto y parece que no hay forma de hacerlo. Por lo tanto, todas las cosas no funcionan.

Presenté una solicitud de función/mejora para arreglar eso.

No tengo idea si les gusta mi idea.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda