Тот же JAR, скомпилированный с разными версиями JDK - PullRequest
4 голосов
/ 03 июля 2019

У нас есть устаревшая библиотека Java (называемая AcmeLib), которая используется для начальной загрузки приложений Java, обеспечения конфигурации, переноса определенных функций БД и тому подобного. Эта библиотека v в основном в режиме обслуживания и представляет собой стандартные jar-файлы Java 8, созданные с использованием maven.

Теперь мы хотим создать приложения Java 11 - и им нужно использовать AcmeLib. Моя первая мысль - просто продолжить сборку AcmeLib в Java 8 - и она будет отлично работать при импорте в приложения Java 11 (* где главное - обновить зависимости AcmeLib).

У меня есть еще одна идея создать версию AcmeLib для Java 8 и Java 11. Я могу сделать это с помощью профиля maven (поскольку они будут различаться только между библиотеками, это будет pom, например, конфиги плагинов и т. Д.), Например.

<profiles>
    <profile>
        <id>java-11</id>
        <activation>
            <jdk>11</jdk>
        </activation>
        <!-- add Java 11 specific configuration -->
    </profile>
</profiles>

Итак, 2 профиля, значит 2 сборки - так что мои вопросы (о времени!) Мне интересно, возможно, это анти-паттерн? Кроме того, есть ли у людей какие-либо предложения относительно соглашений об именовании? Текущая версия lib произвольно установлена ​​на 5.5, поэтому я мог бы создать 11 версию, например ..

<!--  Java 8 complied -->
<artifactId>AcmeLib</artifactId>
<version>5.6</version>

<!--  Java 11 complied -->
<artifactId>AcmeLib</artifactId>
<version>11</version>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...