Как создать исполняемый файл из проекта Spring Maven? - PullRequest
0 голосов
/ 20 марта 2019

Я использую Spring Tool Suite 4. У нас есть API-интерфейс для весенней загрузки, и мы хотели бы создать исполняемый файл (jar или war, без понятия, какой мне нужен). У нас есть зависимости, указанные в pom.xml. По умолчанию это то, что мы собираем, если вы создаете чистое приложение с весенней загрузкой:

<plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>

Итак, мой вопрос, что мне нужно добавить, чтобы я мог выполнить maven install для моего исполняемого файла? На данный момент, если я запускаю maven install (для меня единственный способ создания исполняемого файла, который я знаю), это дает мне AssertionError. Я пытался найти путеводители в Интернете, но ни одна из них не сработала.

На данный момент я был бы рад, если бы мне даже удалось выполнить установку maven, но мой план включает использование конфигурационного файла вне исполняемого файла, также я хотел бы войти (log4j2) рядом с файлом jar, поэтому мне нужно помогите с этим тоже. Как указать их в pom.xml, чтобы я мог использовать конфигурационный файл извне и иметь возможность входить снаружи?

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Итак, я получил AssertionError, потому что по некоторым причинам некоторые из моих тестов не работают для maven (даже если я их выполняю, они проходят). Это действительно имеет значение, если банку или войну. В моем случае это должна быть война, потому что я делаю API Также вот минимум, который вы должны изменить в pom.xml, чтобы иметь возможность создать исполняемый файл: (это идет до зависимостей внутри pom.xml)

<packaging>war</packaging>
<properties>
    <java.version>11</java.version>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
    <forceJavacCompilerUse>true</forceJavacCompilerUse>
</properties>

Следующая часть находится между <build></build>.

<pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>your.main.class</mainClass>
                    </manifest>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-remote-resources-plugin</artifactId>
                <version>1.6.0</version>
                <executions>
                    <execution>
                        <id>process-remote-resources</id>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>
                            <resourceBundles>
                                <resourceBundle>org.apache:apache-jar-resource-bundle:1.0</resourceBundle>
                            </resourceBundles>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </pluginManagement>

Подводя итог, я до сих пор понятия не имею, что делает большинство из них, но это работает.

0 голосов
/ 20 марта 2019

Вам понадобится исполняемый файл jar. Добавьте это к вашему файлу pom:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
            <configuration>
                <classifier>spring-boot</classifier>
                <mainClass>
                  specify.your.main.Class
                </mainClass>
            </configuration>
        </execution>
    </executions>
</plugin>
...