Я настроил непрерывной интеграции инструмент (Travis CI) для запуска на каждой фиксации я делаю, он строит свой проект Java 6 на следующих JDK-х:Имеет ли значение, если артефакт Java 6 скомпилирован с Java 6, 7 или 8?
- Oracle JDK 8
- Oracle JDK 7
- Open JDK 7
- Open JDK 6
Теперь Travis CI нет (пока) изначально поддерживает задачу, которая загружает созданный артефакт после выполнения всех задач, которые были закончены, так что я с помощью его к этому.
Мой вопрос заключается в том, что обходной путь попытается загрузить в репозиторий моментального снимка Sonatype артефакт, который был создан как , последний.
Это означает, что один раз он будет загрузить снимок, который был скомпилирован с помощью Open JDK 6, в другой раз с помощью Open JDK 7, и т.д., и т.д.
ли этот вопрос? Может ли клиент Java 6 использовать код Java 6, который компилируется с помощью Java 6+ JDK? Мы уже знаем, что код (по-видимому) делает то, что он должен делать, поскольку он скомпилирован и тесты прошли в этот момент.
Предполагается, что код Java 6 можно запускать на любой совместимой с Java 6 JRE и на Android.
У вас не должно быть проблем с кодом Java 6, скомпилированным под JDK 8 (например), но вы могли бы повеселиться, пытаясь скомпилировать JDK 7 или 8 код в JDK6. Например, операторы switch работают отлично в 7+, но будут бросать ошибки компиляции в 6. – Dave
@Dave Это все код Java 6, который я компилирую здесь, в любом из этих JDK. Я не пытаюсь скомпилировать (скажем) код Java 8 для Java 6. – skiwi
Тогда у вас не должно быть проблем. Но однажды вам будут предъявлены требования для записи в JDK7, в конечном итоге используйте функции, не поддерживаемые в 6, и потратьте полдня на то, чтобы узнать, почему Travis не будет компилироваться для вас. :-) – Dave