Solución:
Al migrar las 3 versiones anteriores de Java, lo primero que se debe considerar es actualizar todas las dependencias principales.
maven-compiler-plugin
-> la versión actual es 3.8.1
,
2.5.1 tiene 7 años.
Intente lo siguiente para resolver este error:
java.lang.NoSuchMethodError: javax.annotation.Resource.lookup () Ljava / lang / String;
Mantenga la dependencia:
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.1</version>
</dependency>
Y agréguelo explícitamente como un módulo:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<release>11</release>
<compilerArgs>
<arg>--add-modules</arg>
<arg>java.xml.ws.annotation</arg>
</compilerArgs>
</configuration>
</plugin>
Para mí, el problema estaba en un conflicto entre libs: javax.annotations-api ^ 1.3.2 y jsr250-api: 1.0. Hay un [email protected] anotación en jsr250-api SIN método lookup ()! En algunos entornos de ejecución, @Resorse de jsr250 se cargó primero, en otros, javax.annotations-api’s. En el primer caso se produjo mi error:
Ha fallado el posprocesamiento de la definición de frijol combinada; la excepción anidada es java.lang.NoSuchMethodError: javax.annotation.Resource.lookup () Ljava / lang / String;
Solución: deshacerse de una de las bibliotecas mediante la exclusión de maven.
Tuve el mismo problema.
Agregué estas líneas, con éxito:
<build>
...
<extensions>
<!-- Prevents this error, with JDK 13: -->
<!-- NoSuchMethodError: 'java.lang.String javax.annotation.Resource.lookup()' -->
<extension>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</extension>
<extension>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</extension>
</extensions>
</build>