У меня есть проекты, которые должны быть сборкой с определенной версией JDK.
Проблема не находится во входных и выходных параметрах, а в банках времени выполнения, используемого во время компиляции. В некоторых случаях я получаю ошибку компиляции, если я пытаюсь скомпилировать с неправильным JDK, но иногда сборка успешна, и я получаю ошибки периода выполнения при использовании банок.
Например, в затмении у меня есть способность установить среду выполнения для проекта в .classpath файле.
Существует ли способ обработать такую ситуацию в знатоке?
То, что я хотел бы иметь, является способностью обработать зависимость JRE как другие зависимости проекта в файле АНГЛИЧАНИНА.
Принятым решением было лучшее, когда я задал этот вопрос, таким образом, я не изменю его. Между тем новое решение этого вида проблем было представлено: Набор инструментальных средств Знатока. Перейдите по ссылке для получения дальнейшей информации.
Я нашел эту статью:
http://maven.apache.org/plugins/maven-compiler-plugin/examples/compile-using-different-jdk.html
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<executable>${JAVA_1_4_HOME}/bin/javac</executable>
<compilerVersion>1.3</compilerVersion>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
У меня есть проекты, которые нужно собрать с использованием определенной версии JDK.
Вы можете использовать плагин Maven Enforcer , чтобы принудительно использовать определенную версию JDK:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-versions</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<version>1.5</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>
Но я не уверен, что действительно понял вопрос. Если это не то, что вы хотите, возможно, вы могли бы объявить свои зависимости JDK в профилях и использовать триггер активации на основе версии JDK. Например:
<profiles>
<profile>
<activation>
<jdk>1.5</jdk>
</activation>
...
</profile>
</profiles>
Эта конфигурация активирует профиль, когда версия JDK начинается с «1.5».
Я полагаю, что это можно решить с помощью следующего плагина в вашем pom:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
Здесь вы нацеливаетесь на версию 1.6, или пишите свою собственную версию