首页 > 解决方案 > Spring Boot 执行 maven 存储库

问题描述

我有一个可执行的 jar 文件。我可以使用 command 正确启动它java ${JAVA_OPTS} -jar。我将它部署到内部 Maven 存储库,并将其作为依赖项包含到 Spring Boot 应用程序中。如何将该依赖项作为 jar 文件执行?我想创建计划以每天执行它。

标签: springmavenspring-boot

解决方案


一种可能的选择是通过 maven 插件解压 jar,更新 spring-boot-maven-plugin 中的主类并执行如下命令:

打开罐子:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.2</version>
    <executions>
        <execution>
            <id>unpack</id>
            <phase>compile</phase>
            <goals>
                <goal>unpack</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>com.group</groupId>
                        <artifactId>artifact</artifactId>
                        <version>0.0.1</version>
                        <type>jar</type>
                        <overWrite>true</overWrite>
                        <outputDirectory>${project.build.outputDirectory}</outputDirectory>
                    </artifactItem>
                </artifactItems>
            </configuration>
        </execution>
    </executions>
</plugin>

更新pom.xml 中的主类(在 spring-boot-maven-plugin 中添加以下标记):因为您可能在最终 jar 中有多个主类。

<configuration><mainClass>any of the main class here</mainClass></configuration>

调用主类

java -cp final.jar -Dloader.main=<fullyqualifed_mainclass> org.springframework.boot.loader.PropertiesLauncher

通过这个,您可以从 final jar 调用任何主类。


推荐阅读