Проект Maven за изграждане на допълнителен буркан, компилиран от различна версия на Java

Основният ми проект използва java 1.6 и трябва да осигуря клиентски jar на система, която може да работи само на java 1.5. Клиентският буркан е отделен модул, така че мога да посоча версията на Java в maven-compiler-plugin. Клиентският буркан обаче зависи от основен буркан, който е на 1.6. Един от начините за

Използвах целта "test-jar" в maven-jar-plugin, за да генерирам тестов буркан за използване от друг модул. Надявам се да направя нещо подобно и да го използвам в моя клиентски модул със следната зависимост:

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

person ltfishie    schedule 22.11.2011    source източник
comment
Нямам време да публикувам пълен отговор, но можете да управлявате тези неща, като използвате профили на компилация, за да зададете свойства, които вашата компилация да търси и да действа съответно - maven.apache.org/guides/introduction/   -  person Brian Roach    schedule 23.11.2011


Отговори (1)


Защо вашите клиентски проекти зависят от ядрото?

Ако използва кода от ядрото, очевидно трябва да компилирате и ядрения JAR за 1.5. Тук имате няколко опции:

  1. Задайте целта глобално на 1.5 и се уверете, че не използвате 1.6 JDK неща във вашия код (поне в частта от кода, извикан от клиента на JDK 1.5).
  2. Използвайте профилите + класификаторите, за да генерирате артефакти за различни JDK (вижте този въпрос). Все пак трябва да стартирате изградения многократно. Всъщност всяка компилация ще компилира всичко, използвайки една и съща целева версия, така че този подход е само малко подобрение на 1), което ви позволява да публикувате своя артефакт за множество JDK версии.

Ако клиентският код всъщност не използва ядрото (например използва само WSDL от ядрото или някои други неща, различни от Java), можете да премахнете тази зависимост, като преместите неща в отделен „споделен“ модул.

person Ivan Dubrov    schedule 22.11.2011
comment
Благодаря, в крайна сметка го направих с профили и презаписах компилирането и конфигурацията на jar по подразбиране, за да създам моя клиентски буркан. - person ltfishie; 25.11.2011