Я работаю с некоторым сторонним кодом, который имеет зависимости от классов в пакете com.sun.javadoc.*
. Эта и некоторые другие зависимости означают, что код будет строиться только с Sun/Oracle JDK, а не OpenJDK.как обеспечить применение конкретного поставщика JDK в качестве предпосылки сборки?
У меня нет возможности удалить зависимости, поэтому мне хотелось бы, чтобы сборка была неудачной на ранней стадии и с легко понятным сообщением об ошибке, если кто-то пытается построить с помощью JDK, который не поддерживается.
Есть ли способ заставить JDK Vendor и JDK Version быть Oracle 1.6 JDK в файле pom?
EDIT:
Благодаря carlspring's answer, мне удалось получить эту работу. Это не проверено полностью для всех вендоров и версий VM, но это начало.
<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>
Вы знаете, что 1.6 достигли конца, если жизнь? Из-за этого может потребоваться единичный тест. – Michael