我有一个多模块项目,我使用 Jib 构建 Spring Boot 应用程序。我知道将 fat JAR 放入容器会阻止有效地构建镜像 ( see ),但需要将一个特定模块打包到 fat JAR 文件中。由于我想为整个多模块项目保留相同的构建工具,是否可以使用 Jib 打包 fat jar?
我已经尝试过重新打包
目标
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.5.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
正在打包应用程序,例如
app
├── classpath
│ └── import-metadata-service-0.0.1-SNAPSHOT.original.jar
└── libs
├── HdrHistogram-2.1.12.jar
├── LatencyUtils-2.0.3.jar
├── apache-jena-libs-3.13.0.pom
...
最佳答案
是的,可以使用 Jib 将 fat jar 放到容器镜像上。请使用 Jib 的“containerizingMode”配置选项:
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<containerizingMode>packaged<containerizingMode>
</configuration>
</plugin>
请引用https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin#extended-usage获取全套臂架配置选项。
关于jib - 使用 JIB 构建 Spring Boot fat JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64849472/