plugin para intellij instalar idea for configurar como scala intellij-idea java-9

para - scala en intellij



Intellij: El proyecto Scala basado en SBT no se compila con Java 9 (3)

Intenté cambiar mi proyecto basado en Scala / sbt a Java 9. Si compilo el proyecto con sbt, funciona.

Si trato de construir el proyecto con la opción Build de IntelliJ, recibo inmediatamente el error

Error:Module ''xyz'' production: java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter

Intenté agregar el módulo como dependencia

libraryDependencies += "javax.xml.bind" % "jaxb-api" % "2.3.0"

y agregado en la configuración del compilador de IntelliJ (javac y el compilador scala)

<option name="ADDITIONAL_OPTIONS_STRING" value="--add-modules java.xml.bind" />

pero no ayuda, desafortunadamente.


Además de la respuesta de @nullpointer, instrucciones breves sobre cómo usar --add-modules

Abra File -> Settings -> Build, Execution, Deployment -> Compiler y agregue --add-modules java.xml.bind a Shared build process VM options


  1. Abra [ Archivo -> Configuraciones -> Construir, Ejecución, Despliegue -> Compilador ]
  2. Agregue " --add-modules java.se.ee " a [ Opciones de VM de proceso de compilación compartida ]

Mover esto como una respuesta para servir como una sugerencia temporal a menos que haya una solución definitiva y agrupar algunos otros puntos.

Parece que Scala todavía no está completo en términos de disponibilidad para ser utilizado con JDK-9 como es visible en scala / scala-dev - Support JDK 9

Por otro lado, la forma de resolver la dependencia de javax.xml.bind podría clasificarse actualmente en dos categorías:

  • Su proyecto utiliza una biblioteca que a su vez requires javax.xml.bind , en cuyo caso no hay mucho en sus manos que no sea esperar a que esa biblioteca se mueva a una estructura modular antes de su reestructuración. Sin embargo, esto puede ser temporalmente pirateado por la --add-modules javax.xml.bind proporcionada como argumento del compilador.

  • Su proyecto utiliza el javax.xml.bind directamente. En ese caso, la solución ideal es alejarse del módulo y utilizar la dependencia [ jaxb-api:2.3.0 ] y el código de refactorización en consecuencia.