A second build without clean fails in resources-optimizer-maven-plugin because minified files are minified again

Abierto Apto para principiantes
#1,832 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@papegaaij ya está trabajando en esto.

Desde el 6/11/2026.

  • #1833 de @papegaaij — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
82/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
java
Área
build-system

Línea de trabajo

Empieza con resourcesSet del optimizador en el pom.xml raíz y la exclusión existente **/jquery*.js. Reproduce el problema con los dos comandos de Maven del issue, primero con clean y después sin él. Excluye **/*.min.js y **/*.min.css; estará hecho cuando la segunda compilación termine correctamente sin procesar archivos minificados anteriores ni añadir entradas *.min.min.* a los JAR.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Description

A second mvn install without clean fails in wicket-extensions, in the resources-optimizer-maven-plugin:

mvn clean install -DskipTests -Pfast -pl wicket-extensions -am   # succeeds
mvn install -DskipTests -Pfast -pl wicket-extensions -am         # fails
[ERROR] JSC_NON_CONST_DEFINE. @define $jscomp.ASSUME_ES5 has already been set at src/com/google/javascript/jscomp/js/util/defines.js:25:8. at .../wicket-extensions/target/classes/org/apache/wicket/extensions/ajax/veil/wicket-veil.min.js line 1 : 243
...
[ERROR] Failed to execute goal org.primefaces.extensions:resources-optimizer-maven-plugin:2.7.9:optimize (default) on project wicket-extensions: Resources optimization failure: Resources optimization failure. Please fix errors and try again.
Cause

The optimizer reads its input from ${project.build.directory}/classes, the directory it also writes its .min output to, and the root pom.xml excludes only **/jquery*.js. On a build without clean, the .min.js and .min.css files of the previous run are therefore minified again, as *.min.min.js and *.min.min.css. The log of the second run shows it, e.g. Optimize JS file wicket-ajax-jquery.min.js ....

Most files survive being minified twice, but wicket-veil.js uses for ... of with destructuring, so Closure injects its $jscomp polyfills, including @define constants, into wicket-veil.min.js. Compiling that output again redefines those constants, which Closure reports as an error.

Modules that do get past the optimizer ship the doubled files: after the second run, the installed wicket-core jar contains 9 *.min.min.* entries, e.g. wicket-ajax-jquery.min.min.js.

CI always builds from a clean checkout, so it never sees this.

Suggested fix

Exclude **/*.min.js and **/*.min.css in the optimizer's resourcesSet in the root pom.xml, next to the existing **/jquery*.js exclusion.

This replaces #1718, whose title describes this problem but whose description is about an unrelated javadoc failure.

Lenguaje dominante
Java
Estrellas
799
Forks
421
Merge medio
20 h 5 min
PR fusionados (30 d)
125

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/wicket

Todos los issues de apache/wicket

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.