Создайте исполняемый файл Jar, включающий все зависимости в виде упакованных файлов. - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь понять, как включить все зависимости в исполняемый файл jar в виде упакованных jar-файлов (т. Е. Включить jar-файлы внутри jar-файла), но у меня ничего не получается.

Может ли кто-нибудь указать мне на Правильное направление, пожалуйста?

Обратите внимание, что я не хочу, чтобы в результате получился жирный кувшин, чтобы в него были упакованы кувшины, а не неупакованный эквивалент, который вы получаете, используя maven-assembly-plugin

Ответы [ 2 ]

1 голос
/ 22 января 2020

То, что вы хотите создать, называется толстая банка . Вы можете сгенерировать его, выполнив следующие шаги.

Добавьте раздел сборки в свой файл POM следующим образом:

<build>
    <finalName>example</finalName>
    <plugins>

        <!-- Set a compiler level -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>${jdk.version}</source>
                <target>${jdk.version}</target>
            </configuration>
        </plugin>

        <!-- Maven Assembly Plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4.1</version>
            <configuration>
                <!-- get all project dependencies -->
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <!-- MainClass in mainfest make a executable jar -->
                <archive>
                  <manifest>
                    <mainClass>com.example.Main</mainClass>
                  </manifest>
                </archive>

            </configuration>
            <executions>
              <execution>
                <id>make-assembly</id>
                <!-- bind to the packaging phase -->
                <phase>package</phase> 
                <goals>
                    <goal>single</goal>
                </goals>
              </execution>
            </executions>
        </plugin>

    </plugins>
</build>

Выше «Плагин сборки Maven» связан с фазой упаковки Maven. , чтобы получить окончательный Jar, просто упакуйте его, используя:

mvn package

В целевой папке будет создано два файла jar.

  • example.jar - Только классы вашего проекта

  • example-jar-with-dependencies.jar - Классы проекта и зависимости в одном банке.

Теперь вы можете проверить содержимое вашей толстой банки:

jar tf target/example-jar-with-dependencies.jar 
0 голосов
/ 22 января 2020

Включить зависимости в пом. xml. Создайте проект, используя mvn clean install, и результат будет иметь эти зависимости. Затем вы можете запустить банку, используя

java -cp <jar Filename> <main class name>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...