maven打包时禁用某个插件_Springboot2.0学习9 SpringBoot构建插件

e2b71ad75cc232048e16e9cf33ffe677.png

SrpingBoot提供了Maven和Gradle的构建插件。

一、 Maven Plugin

完整文档地址

1. 使用插件

1.1.1 maven配置

<?xml version="1.0" encoding="UTF-8"?>4.0.0org.springframework.boot                spring-boot-maven-plugin                2.2.2.RELEASErepackage

1.1.2 打包:在target里生成jar和jar.original

$ mvn package$ ls target/*.jartarget/myproject-1.0.0.jar target/myproject-1.0.0.jar.original

如果在配置文件里没有配置 , 可以直接在命令行里指定repackage动作:

$ mvn package spring-boot:repackage$ ls target/*.jartarget/myproject-1.0.0.jar target/myproject-1.0.0.jar.original

1.1.3 如果使用了里程碑或预览版,可以指定pluginRepository:

spring-snapshotshttps://repo.spring.io/snapshotspring-milestoneshttps://repo.spring.io/milestone

2. 打包可执行的jar和war包

1.2.1 配置jar/war

引用 spring-boot-maven-plugin插件后,它会自动尝试使用spring-boot:repakcage打包成可执行文件。 通过下面属性配置其是jar还是war

<?xml version="1.0" encoding="UTF-8"?>jar

1.2.2 配置主类

org.springframework.boot    spring-boot-maven-plugin    com.example.app.Main

运行:

$ mvn package$ java -jar target/mymodule-0.0.1-SNAPSHOT.jar

1.2.3 配置war同时又是可执行的、可部署到外部容器的

要标记内部嵌入式容器是provided:

<?xml version="1.0" encoding="UTF-8"?>warorg.springframework.boot            spring-boot-starter-web        org.springframework.boot            spring-boot-starter-tomcat            provided

mvn package与repackage说明:

repackage 功能的 作用,就是在打包的时候,多做一点额外的事情:

  1. 首先 mvn package 命令 对项目进行打包,打成一个 jar,这个 jar 就是一个普通的 jar,可以被其他项目依赖,但是不可以被执行。
  2. repackage 命令,对第一步 打包成的 jar 进行再次打包,将之打成一个 可执行 jar ,通过将第一步打成的 jar 重命名为 *.original 文件

二、gradle plugin

Spring Boot Gradle Plugin提供了gradle的构建方式,可以打包可执行jar或war包、可执行的Spring Boot 应用程序。
完整文档参考:

  • Reference (HTML and PDF)
  • API

1. 引用插件

Groovy

plugins {    id 'org.springframework.boot' version '2.2.2.RELEASE'}

单独使用插件时项目不用进行什么修改,插件会检测其它插件的变化并自动构建可执行jar的任务。 典型的spring引导项目至少应用groovy,java或org.jetbrains.kotlin.jvm插件和io.Spring.dependency-management插件,如:

apply plugin: 'java'apply plugin: 'io.spring.dependency-management'

2. 打包war

dependencies {    implementation 'org.springframework.boot:spring-boot-starter-web'    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'}

3. 打包普通可执行jar

默认情况下,配置bootJar或bootWar时,jar或war任务是禁用的。通过启用jar或war任务,可以将项目同时配置为jar和war:

jar {    enabled = true}

要避免jar和war生成在同一个目录,可以将其中一个配置不同位置:

bootJar {    classifier = 'boot'}

4. 配置主类

bootJar {    mainClassName = 'com.example.ExampleApplication'}

或使用:

springBoot {    mainClassName = 'com.example.ExampleApplication'}

或配置项目属性:

mainClassName = 'com.example.ExampleApplication'

可以使用bootJar的manifest 属性配置开始类:

bootJar {    manifest {        attributes 'Start-Class': 'com.example.ExampleApplication'    }}

三、Spring Boot AntLib模块

Spring Boot AntLib模块提供了Apache Ant的支持,可以使用这个模块创建可执行jar。
使用方式:在build.xml里 添加 spring-boot命名空间:

    ...

运行命令:

$ ant -lib 

1. Spring Boot Ant 任务

声明spring-boot-antlib命名空间后,会创建下面两个任务:

  • spring-boot:exejar
  • spring-boot:findmainclass

3.1.1 spring-boot:exejar

使用 exejar任务构建SpringBoot可执行jar,下面是该任务支持的属性:

6f57a787c0dda91ca32632cca4e53511.png

下面是支持的元素:

298a2a6927973567008ef08e67eb7e5c.png

3.1.2 一个示例

指定启动类

检测启动类

2. spring-boot:findmainclass任务

exejar会使用findmainclass来定位启动函数。下面是支持的属性:

934ded7315854539e7d320b582fcc1d7.png

示例

Find and log     Find and set     Override and set     

四、其它支持的构建工具

spring-boot-loader-tools支持开发自己的构建工具。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值