簡體   English   中英

如何從spring maven項目創建可執行文件?

[英]How do i create executable from spring maven project?

我使用Spring Tool Suite 4.我們有一個spring-boot API,我們想創建一個可執行文件(jar或war,沒有線索,我需要哪一個)。 我們在pom.xml中聲明了依賴項。 默認情況下,如果您創建一個干凈的spring-boot應用程序,這就是我們正在構建的內容:

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

所以我的問題是什么,我必須添加,所以我可以實際執行maven install我的可執行文件? 截至目前,如果我運行maven install(這對我來說是我知道創建可執行文件的唯一方法),它會給我一個AssertionError。 我試圖在網上找到指南,但沒有一個能奏效。

現在我很高興,如果我甚至可以設法執行maven安裝,但我的計划包括在可執行文件之外的配置文件的使用我也想在jar文件旁邊記錄(log4j2),所以我需要幫助那些太。 如何在pom.xml中指定這些,以便我可以從外部使用配置文件並能夠在外面登錄?

你會想要一個可執行的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>

所以我得到了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>

總而言之,我仍然不知道大多數這樣做,但這是有效的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM