Maven Project для сборки дополнительного jar-файла, скомпилированного другой java-версией - PullRequest
1 голос
/ 23 ноября 2011

Мой основной проект использует java 1.6, и мне нужно предоставить клиентский jar для системы, которая может работать только на java 1.5. Клиентский jar - это отдельный модуль, поэтому я могу указать версию java в maven-compiler-plugin. Однако клиентская фляга зависит от основной фляги, которая находится на 1.6. Один из способов

Я использовал цель "test-jar" в maven-jar-plugin для генерации тестового jar для использования другим модулем. Я надеюсь сделать что-то подобное и использовать это в моем клиентском модуле со следующей зависимостью:

<dependency>
    <groupId>org.mygroup</groupId>
    <artifactId>module-core</artifactId>
    <classifier>java1_5</classifier>
</dependency> 

1 Ответ

0 голосов
/ 23 ноября 2011

Почему ваши клиентские проекты зависят от ядра?

Если он использует код из ядра, вам, очевидно, нужно скомпилировать ядро ​​JAR для 1.5. У вас есть несколько вариантов здесь:

  1. Установите целевое значение глобально на 1,5 и убедитесь, что вы не используете 1.6 JDK в своем коде (по крайней мере, в той части кода, которая вызывается клиентом в JDK 1.5).
  2. Используйте профили + классификаторы для генерации артефактов для разных JDK ( см. Этот вопрос ). Вы должны запустить встроенный несколько раз, хотя. Фактически, каждая сборка будет компилировать все, используя одну и ту же версию -target, поэтому этот подход является лишь небольшим улучшением 1), позволяя вам опубликовать свой артефакт для нескольких версий JDK.

Если клиентский код на самом деле не использует ядро ​​(например, он использует только WSDL из ядра или некоторые другие не-Java вещи), вы можете удалить эту зависимость, переместив вещи в отдельный «общий» модуль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...