Использование другой ссылки на eclipselink, чем в комплекте с glassfish-embedded-web

Я использую glassfish-embedded-web для интеграционных тестов внутри проекта maven:

    <dependency>
        <groupId>org.glassfish.extras</groupId>
        <artifactId>glassfish-embedded-web</artifactId>
        <version>3.2-b06</version>
        <scope>test</scope>
    </dependency>

glassfish-embedded-web поставляется с Eclipselink 2.2.0, но для проекта требуются функции 2.4. При регулярном развертывании это решается добавлением требуемых jar-файлов в каталог модулей glassfish и этой зависимости:

    <dependency>
      <groupId>org.eclipse.persistence</groupId>
      <artifactId>org.eclipse.persistence.core</artifactId>
      <version>2.4.1</version>
      <scope>provided</scope>
    </dependency>

Я пробовал также скомпилировать область, но все же используется встроенный EL 2.2.0. Добавление зависимости области тестирования от EL 2.4.1 не помогает. Есть ли способ решить эту проблему?


person Marek    schedule 21.05.2013    source источник
comment
Вы нашли подходящее решение?   -  person Denys S.    schedule 10.12.2013


Ответы (2)


Вы пытались указать test области maven? В противном случае он будет недоступен при тестировании! Чтобы предоставить эту версию только для тестирования, вы можете использовать профили maven.

person Matthias B    schedule 23.05.2013
comment
Я пробовал это. Компиляция приводит к ошибке пакета org.eclipse.persistence.annotations не существует. Этот пакет находится в org.eclipse.persistence.core - person Marek; 23.05.2013
comment
Ой, извините, не прочитал, что вы уже пробовали скомпилировать и протестировать область видимости. Я использую org.glassfish.main.extras:glassfish-embedded-all:3.1.2.2, и он работает, когда я использую предоставленную область для ссылки eclipse. - person Matthias B; 23.05.2013

Я вижу два возможных решения этой проблемы: либо вы создаете свою собственную встроенную в Glassfish, либо просто используете метод грубой силы и изменяете jar.

При первом подходе: потратив некоторое время на создание GF, я понял, что даже с моими навыками написания сценариев оболочки дилетанта проще просто использовать второй подход вместо того, чтобы придумывать код GF. Однако, если вы готовы к этому, я бы посоветовал начать с oracle wiki .

Второй подход: Как я уже упоминал выше, автоматизация этой задачи, на мой взгляд, является лучшим подходом (по крайней мере, если вы имеете дело с многочисленными библиотеками и постоянными изменениями), поэтому я написал этот скрипт со всеми необходимыми инструкциями по его использованию. После получения новой банки просто установите ее. в вашем местном репо. Я использую Nexus, поэтому для меня нужно было нажать пару кнопок.

P.S .: Любые комментарии / советы / улучшения по сценарию приветствуются.

person Denys S.    schedule 12.12.2013