返回介绍

8.4 支持其他构建系统

发布于 2021-03-17 13:07:53 字数 1201 浏览 852 评论 0 收藏 0

如果您想使用Maven,Gradle或Ant以外的构建工具,您可能需要开发自己的插件。 可执行jar需要遵循特定的格式,并且某些条目需要以未压缩的形式编写(有关详细信息,请参阅附录中的“可执行jar格式”部分)。

Spring Boot Maven和Gradle插件都使用spring-boot-loader-tools来实际生成jar。 如果需要,您可以直接使用此库。

8.4.1 重新打包Archives

要重新打包现有存档以使其成为自包含的可执行存档,请使用org.springframework.boot.loader.tools.Repackager。 Repackager类采用一个构造函数参数,该参数引用现有的jar或war存档。 使用两个可用的repackage()方法之一来替换原始文件或写入新目标。 在重新打包程序运行之前,也可以配置各种设置。

8.4.2 嵌套Libraries

重新打包存档时,可以使用org.springframework.boot.loader.tools.Libraries接口包含对依赖项文件的引用。 我们在这里没有提供任何具体的库实现,因为它们通常是特定于构建系统的。

如果您的存档已包含库,则可以使用Libraries.NONE。

8.4.3 找到Main类

如果不使用Repackager.setMainClass()指定主类,则repackager使用ASM读取类文件并尝试使用public static void main(String[] args)方法查找合适的类。 如果找到多个候选项,则抛出异常。

8.4.4 重新打包实施示例

以下示例显示了典型的重新打包实现:

Repackager repackager = new Repackager(sourceJarFile);
repackager.setBackupSource(false);
repackager.repackage(new Libraries() {
			@Override
			public void doWithLibraries(LibraryCallback callback) throws IOException {
				// Build system specific implementation, callback for each dependency
				// callback.library(new Library(nestedFile, LibraryScope.COMPILE));
			}
		});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文