Как включить библиотеки/зависимости при создании файла jar?

Я создал плагин Confluence (приложение Java), на котором есть Maven, и включает некоторые зависимости в pom.xml следующим образом: (он должен использовать клиентскую библиотеку Google)

<dependencies>
    <dependency>
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-calendar</artifactId>
        <version>v3-rev254-1.22.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.google.api-client</groupId>
        <artifactId>google-api-client</artifactId>
        <version>1.22.0</version>
        <scope>compile</scope>
    </dependency>

    ..... Skip .....

</dependencies>

Я также загрузил клиентскую библиотеку Google и создал папку «libs» по пути «src/main/resources/» в этом проекте maven для их хранения и добавил их в виде jar-файлов в Eclipse следующим образом:

введите здесь описание изображения

Однако после выполнения «atlas-debug» для вызова экземпляра Confluence или команды «atlas-package» окончательный экспортированный файл jar обычно не включает зависимости/библиотеки (я обнаружил это в соответствии с ошибкой jar файл, он намного меньше успешного).

Как сделать так, чтобы файлы библиотеки действительно включались в экспортируемый файл jar каждый раз, когда я выполняю команды "atlas-debug" или "atlas-package"?


person skyclouder    schedule 01.10.2017    source источник
comment
Муравей @Ravi != maven   -  person jmj    schedule 01.10.2017
comment
Муравей @Ravi != maven   -  person skyclouder    schedule 01.10.2017
comment
Может я что-то упускаю, но зачем вы вообще что-то скачиваете? Если maven правильно настроен на вашем компьютере и в eclipse, он сделает за вас всю загрузку и экспорт в банку.   -  person Ray    schedule 01.10.2017
comment
Может быть, что-то не так с моим Maven или Eclipse? Если бы я не добавил библиотеку в папку libs, до сих пор не было бы успешного экспорта.   -  person skyclouder    schedule 01.10.2017
comment
местоположение src/main/resources предназначено для ресурсов, но никогда для файлов jar, и вы не должны обрабатывать это вручную. Позвольте Maven сделать работу... Пожалуйста, покажите свой файл pom..   -  person khmarbaise    schedule 01.10.2017


Ответы (1)


Вы можете использовать подключаемый модуль maven-assembly-plugin, который упакует все ваши зависимости в банку. Вы можете настроить его в разделе плагинов в разделе сборки в вашем pom.xml:

<build>
...
    <plugins>
    ...
       <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.2.2</version>
                <executions>
                    <execution>
                        <id>assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <configuration>
                            <descriptorRefs>
                                <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>
                            <archive>
                            </archive>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
    ...
    </plugins>
...
</build>

Помните, что зависимость, настроенная с помощью <scope>provided</scope>, не будет включена в банку.

person araknoid    schedule 01.10.2017