Как в IDEA собрать jar c внешней папкой библиотек?

Здравствуйте.
Перешел с Eclipse на IDEA.
Есть свой домашний проектик. В Eclipse я создавал jar пользуясь стандартными средствами.
Но в IDEA не выходит. Хотя перепробывал все варианты, найденные в интернете.
Надо собрать jar, а внешние библиотеки jar положить в папку lib.
Создать jar+lib получается, но моя jar не видит внешние jar.

Есть ли рабочий пример в интернете, или у кого есть свой пример - подскажите пожалуйста.
Интересуют оба метода: с помощью IDEA и через maven.
  • Вопрос задан
  • 766 просмотров
Пригласить эксперта
Ответы на вопрос 2
duhbox
@duhbox
Попробую ответить в части maven.
В своем проекте размещаю библиотеки внутри jar с помощью Apache Maven Shade Plugin
https://maven.apache.org/plugins/maven-shade-plugin/
В pom.xml это выглядит так:
<!-- Maven Shade Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.3</version>
                <executions>
                    <!-- Run shade goal on package phase -->
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <!-- add Main-Class to manifest file -->
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>JCheck.App</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>


Если я правильно понял, разместить зависимости во внешней папке с помощью maven можно используя System Dependencies
Ниже две ссылки, которые мне встретились.
https://maven.apache.org/guides/introduction/intro...
https://www.tutorialspoint.com/maven/maven_externa...
Ответ написан
Комментировать
@cawendish Автор вопроса
dunbox, спасибо, но я уже это пробовал, но даже в манифест список библиотек не попадает.

Вот данная часть моего пома:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.1.1</version>
                <configuration>
                    <archive>
                        <index>true</index>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>mmmmm.sssssss.main.Main</mainClass>
                            <packageName>mmmmm.sssssss.main</packageName>
                            <classpathPrefix>lib/</classpathPrefix>

                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                        </manifest>
                    </archive>

                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>3.1.1</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>

                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                            <overWriteReleases>false</overWriteReleases>
                            <overWriteSnapshots>false</overWriteSnapshots>
                            <overWriteIfNewer>true</overWriteIfNewer>

                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>


    <dependencies>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.10</version>
            <scope>system</scope>
            <systemPath>${basedir}/lib/commons-codec-1.10.jar</systemPath>
        </dependency>

***
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы