我如何从Spring Maven项目创建可执行文件?

时间:2019-03-20 14:43:52

标签: java maven spring-boot executable-jar

我使用Spring Tool Suite4。我们有一个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安装?到目前为止,如果我运行maven install(这对我来说是我知道的创建可执行文件的唯一方式),那么它会给我AssertionError。我尝试在线查找指南,但没有一个起作用。

就目前而言,如果我什至可以执行maven安装,我会很高兴,但是我的计划包括在可执行文件之外使用配置文件,我也想在jar文件旁边登录(log4j2),所以我需要也帮助那些人。如何在pom.xml中指定这些,以便我可以从外部使用配置文件并能够从外部登录?

2 个答案:

答案 0 :(得分:0)

您需要一个可执行的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>

答案 1 :(得分:0)

所以我得到了AssertionError,因为出于某些原因,我的某些测试不适用于Maven(即使我执行了测试也可以通过)。 罐子或战争实际上很重要。就我而言,这是一场战争,因为我正在制作API 另外,这是您必须更改pom.xml才能创建可执行文件的最低要求:(在pom.xml内部的依赖项之前)

<Stream cam4.webm>
   Feed feed4.ffm 
   Format webm
   # Audio settings
   NoAudio
   # Video settings
   VideoCodec libvpx
   VideoSize 720x576           
   VideoFrameRate 25           
   AVOptionVideo qmin 10
   AVOptionVideo qmax 42 
   AVOptionAudio flags +global_header
   PreRoll -1
   StartSendOnKey
   VideoBitRate 400            
</Stream>

以下部分在<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>

总而言之,我仍然不知道其中大多数是做什么的,但这是可行的。