64.3 打包可执行jar和war文件

一旦spring-boot插件被应用到你的项目,它将使用bootRepackage任务自动尝试重写存档以使它们能够执行。为了构建一个jar或war,你需要按通常的方式配置项目。

你想启动的main类既可以通过一个配置选项指定,也可以通过向manifest添加一个Main-Class属性。如果你没有指定main类,该插件会搜索带有public static void main(String[] args)方法的类。

为了构建和运行一个项目artifact,你可以输入以下内容:

  1. $ gradle build
  2. $ java -jar build/libs/mymodule-0.0.1-SNAPSHOT.jar

为了构建一个即能执行也可以部署到外部容器的war包,你需要将内嵌容器依赖标记为providedRuntime,比如:

  1. ...
  2. apply plugin: 'war'
  3. war {
  4. baseName = 'myapp'
  5. version = '0.5.0'
  6. }
  7. repositories {
  8. jcenter()
  9. maven { url "http://repo.spring.io/libs-snapshot" }
  10. }
  11. configurations {
  12. providedRuntime
  13. }
  14. dependencies {
  15. compile("org.springframework.boot:spring-boot-starter-web")
  16. providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
  17. ...
  18. }

具体参考“Section 81.1, “Create a deployable war file””