企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
创建一个可在生产环境执行的自容器的jar文件来结束我们的例子.可执行的jar(也加胖jar)的归档文件包括编译的class文件和运行时依赖的所有jar. >可执行的jar和java >Java没有提供加载嵌套jar文件的标准方法(jar文件本身包含在jar中)。 如果您要分发自包含的应用程序,这可能会有问题。 >为了解决这个问题,许多开发人员使用“uber”jars。 uber jar将所有应用程序依赖项中的所有类打包到一个存档中。 这种方法的问题在于很难看出应用程序中有哪些库。 如果在多个jar中使用相同的文件名(但具有不同的内容),也可能会有问题。 >Spring Boot采用不同的方法(附录E,可执行jar的格式),让你直接嵌套jar。 > 创建可执行的jar,需要吧`spring-boot-maven-plugin`加入`pom.xml`中.把下面的内容放在`dependencies`节点下面 ~~~xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> ~~~ >`spring-boot-starter-parent` POM 包含`<executions>` 配置绑定了`repackage` 目标.如果你没有使用parent pom,需要自己声明这些配置,参考[插件文档](https://docs.spring.io/spring-boot/docs/2.0.4.RELEASE/maven-plugin/usage.html) > 保存`pom.xml`,运行`mvn package`命令,如下: ~~~ $ mvn package [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building myproject 0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] .... .. [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myproject --- [INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar [INFO] [INFO] --- spring-boot-maven-plugin:2.0.4.RELEASE:repackage (default) @ myproject --- [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ ~~~ 在`target `目录下,你会发现`myproject-0.0.1-SNAPSHOT.jar`,大概10M左右,如果你想检查内部,你可以使用jar tvf,如下所示: ~~~ $ jar tvf target/myproject-0.0.1-SNAPSHOT.jar ~~~ 在`target`目录,你还会发现一个很小的文件`myproject-0.0.1-SNAPSHOT.jar.original`,这是spring boot重打包之前maven创建的原始jar 使用`java -jar`命令启动应用,如下 ~~~ $ java -jar target/myproject-0.0.1-SNAPSHOT.jar . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.0.4.RELEASE) ....... . . . ....... . . . (log output here) ....... . . . ........ Started Example in 2.536 seconds (JVM running for 2.864) ~~~ 和之前一样,停止 应用请按`ctrl-c`