spring - Spring Boot 执行 maven 存储库
问题描述
我有一个可执行的 jar 文件。我可以使用 command 正确启动它java ${JAVA_OPTS} -jar
。我将它部署到内部 Maven 存储库,并将其作为依赖项包含到 Spring Boot 应用程序中。如何将该依赖项作为 jar 文件执行?我想创建计划以每天执行它。
解决方案
一种可能的选择是通过 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 调用任何主类。
推荐阅读
- python-3.x - 如何将scrapy.Response 传递给字典?
- reactjs - 限制 React Router 一次
- php - 对于下表[附图],我可以很容易地得到每个人的应有剩余吗?
- php - 在 WooCommerce 单一产品元下添加自定义链接文本,在共享按钮上方
- android - 未从 firebase (android) 获取 OTP(正在测试电话号码)
- python - Python:按值的排序顺序打印键和值
- clang - 如何调用clangd来格式化文件
- akka - Akka Cluster Sharding - 集群内的不同实体可以相互通信吗?
- flutter - 如何阻止模糊滤镜对模糊图像周围的颜色进行采样?
- flutter - 在 Dart Flutter 中将 Unix/epoch 时间戳转换为人类可读的时间