Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавить в classpath Jar из Jar-а, через maven dependencies 
:(
    Опции темы
v2v
Дата 18.3.2010, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 2
Всего: 56



Есть jar (А) внутри которого лежит папка lib с другим джарником (В).
A.jar
./lib
./lib/B.jar
1. Если просто подключить внутренний джарник (В) через maven dependencies , то все классы находятся и проект собирается.
2. Если классы из джарника (В) развернуть , потом завернуть в джарник (А),  то все классы находятся и проект собирается.
3. Но если вложить джарник (В) в джарник (А), то не находит классы из внутрненнего джарника не находятся и проект не собирается.

Что то надо прописать в манифесте джарника А? Или как то по умному указать его в dependencies? 

Предпочтительней второй вариант, потому что джарник А собирается с помощью maven bundle plugin для OSGi, но он должен работать и в "стенделон" режиме.. покрайне мере работает если не заварачивать джар в джар (см. 2).

Это сообщение отредактировал(а) v2v - 18.3.2010, 21:43


--------------------
PM   Вверх
intr
Дата 19.3.2010, 03:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 18.12.2005

Репутация: нет
Всего: 2



Немного сумбурно, но если я правильно понял, то надо собрать JAR-архив со всеми зависимостями. 

К сожалению JAR внутри другого JAR не работает, потому надо распаковывать классы из нужных JAR-архивов, и потом запаковывать их в основной JAR-архив, вместе с классами приложения.

Для Maven есть два основных способа это сделать:
1. Использовать Maven assembly - http://maven.apache.org/plugins/maven-assembly-plugin/
2. Использовать Maven shade - http://maven.apache.org/plugins/maven-shade-plugin/

То есть зависимости в Maven от библиотек указываются как обычно, и дополнительно настраиваются один из вышеприведенных плагинов для сборки итогового JAR-архива. Я предпочитаю второй способ.
--------------------
Исследователь бытия и по совместительству Java-developer
PM MAIL WWW Skype GTalk   Вверх
RageSteel
  Дата 19.3.2010, 07:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 6.2.2010

Репутация: нет
Всего: 2



У меня вполне успешно работает jar внутри jar, собранный с помощью maven assembly plugin.

Конфигурация в pom.xml:
Код

            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptors>
                        <descriptor>src/main/assembly/dist.xml</descriptor>
                    </descriptors>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>


Описатель dist.xml:
Код

<assembly
    xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
    <id>jar-with-dependencies</id>
    <formats>
        <format>jar</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <outputDirectory>/lib</outputDirectory>
            <unpack>false</unpack>
            <scope>runtime</scope>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <fileSet>
            <directory>${project.build.outputDirectory}</directory>
            <outputDirectory>/</outputDirectory>
        </fileSet>
    </fileSets>
</assembly>

PM MAIL   Вверх
v2v
Дата 19.3.2010, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 2
Всего: 56



Нет, мне не надо собирать итоговый джарник. Собранный  джарки вообще то будут лежать отдельно.
Мне всего то надо через мавен подключить свои джарки (с джарками) как депенденси и пройти тесты проекта.


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java tools & IDE's | Следующая тема »


 




[ Время генерации скрипта: 0.0883 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.