¿Cómo hacer cumplir un proveedor de JDK específico como un requisito previo de la compilación?
Estoy trabajando con un código de terceros que depende de las clases en elcom.sun.javadoc.*
paquete. Esta y algunas otras dependencias significan que el código solo se compilará conSun / Oracle JDK, y noOpenJDK.
No tengo una opción para eliminar las dependencias, por lo que me gustaría que la compilación falle antes y con un mensaje de error fácil de entender si alguien intenta compilar utilizando un JDK que no es compatible.
¿Hay alguna forma de imponer que JDK Vendor y JDK Version sean Oracle 1.6 JDK en el archivo pom?
EDITAR:
Gracias arespuesta de carlspring, He logrado que esto funcione. No se ha probado exhaustivamente en todos los proveedores y versiones de VM, pero es un comienzo.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.3.1</version>
<executions>
<execution>
<id>enforce-property</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireProperty>
<property>java.vendor</property>
<message>Java Vendor must be Sun/Oracle.</message>
<regex>Sun Microsystems Inc\.</regex>
<regexMessage>Java Vendor must be Sun/Oracle.</regexMessage>
</requireProperty>
<requireProperty>
<property>java.runtime.name</property>
<message>Java Vendor must be Sun/Oracle.</message>
<regex>Java\(TM\) SE Runtime Environment</regex>
<regexMessage>Java Vendor must be Sun/Oracle.</regexMessage>
</requireProperty>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>