java - 如何为无限运行(无限循环)的 Spring Boot 应用程序生成 Jar 文件?
问题描述
我知道如何构建一个包含所有依赖项的应用程序的 jar,但这是我的情况,当我们构建一个 jar(使用 mvn 包)时,它首先运行应用程序以检查一切是否正常(意思是:应用程序需要成功/正确停止)。但就我而言,应用程序不会停止,因为它正在运行无限循环并且没有创建任何 jar。
请问有什么帮助吗?如果这个问题是重复的,我很抱歉。我确实在这里搜索过,但找不到任何相关答案。
Pom.xml
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<mainClass>${start-class}</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-5</version><!--$NO-MVN-MAN-VER$ -->
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>path.to.mainclass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>assemble-all</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
解决方案
自提出问题以来已经有 8 个多月了,我认为 OP 现在可能已经找到了一些解决方案或继续前进。为遇到与我也遇到的相同问题的其他人编写此答案并找到以下解决方案。
如问题中所述,当您运行mvn package/install时,它首先运行应用程序以检查一切是否正常,然后创建包/jar。
因此,一旦您确信应用程序正常,请停止它并重新运行mvn package/install,但这次跳过测试。这可以通过以下任何一种方式来完成。
- 如果您使用的是 Spring Tool Suite:
右键单击项目 -> 运行方式 -> Maven 构建... -> 在主选项卡中,选择复选框“跳过测试” -> 应用 -> 运行 - 如果您从命令行运行:
mvn package -Dmaven.test.skip=true - 此外,您可以在 pom.xml 文件中设置它:
<properties> <java.version>1.8</java.version> <maven.test.skip>true</maven.test.skip> </properties>
并运行 mvn package - 如果您使用的是 Surefire 插件:
mvn package -DskipTests
如需进一步参考,请在下面找到源链接:
推荐阅读
- math - 从初始值重新计算cropdetect参数
- amazon-s3 - 备份存储中的 S3 和 Google Drive?
- python - 有没有更好的方法来使用pop,这样我们就不必创建字典并弹出项目
- python - Pandas 将两列组合成一个 json keyValue 列
- flutter - Flutter中TextField中标签的默认TextStyle是什么?
- javascript - 如何在不重新加载页面的情况下刷新内容(愿望清单)?
- python-3.x - 如何在类本身中调用 python @staticmethod(TypeError:'staticmethod' object is not callable)?
- python - 如何将文件的每个部分写入单独的目录中?
- android - 使用 Custome UI 播放 Youtube 视频
- python - Python 中的变量是如何实际实现的?