Зависимость от проекта знатока против версии JDK

У меня есть проекты, которые должны быть сборкой с определенной версией JDK.

Проблема не находится во входных и выходных параметрах, а в банках времени выполнения, используемого во время компиляции. В некоторых случаях я получаю ошибку компиляции, если я пытаюсь скомпилировать с неправильным JDK, но иногда сборка успешна, и я получаю ошибки периода выполнения при использовании банок.

Например, в затмении у меня есть способность установить среду выполнения для проекта в .classpath файле.

Существует ли способ обработать такую ситуацию в знатоке?

То, что я хотел бы иметь, является способностью обработать зависимость JRE как другие зависимости проекта в файле АНГЛИЧАНИНА.

ОБНОВЛЕНИЕ:

Принятым решением было лучшее, когда я задал этот вопрос, таким образом, я не изменю его. Между тем новое решение этого вида проблем было представлено: Набор инструментальных средств Знатока. Перейдите по ссылке для получения дальнейшей информации.

7
задан Benny Bottema 11 May 2017 в 16:11
поделиться

3 ответа

Я нашел эту статью:

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>
2
ответ дан 7 December 2019 в 12:18
поделиться

У меня есть проекты, которые нужно собрать с использованием определенной версии 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».

2
ответ дан 7 December 2019 в 12:18
поделиться

Я полагаю, что это можно решить с помощью следующего плагина в вашем 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, или пишите свою собственную версию

1
ответ дан 7 December 2019 в 12:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: