一、 mybatis-generator-maven-plugin
这是个好东西,实体类、mapper.java、 mapper.xml 文件,再也不用去一个个的手写了,只需动下小手手,轻轻一点,手起刀落,自动生成
第一步: pom.xml配置
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.2
${basedir}/src/main/resources/generator/generatorConfig.xml
true
true
mysql
mysql-connector-java
5.1.41
tk.mybatis
mapper
3.4.0
第二步: 创建generatorConfig.xml,配置完整的配置信息(耐心看一下,很多地方都可以通用的,标 TODO 的是根据自己的数据库配置需要改动的)
第三步: 执行命令
在maven -> plugins中找到mybais-generator:generate命令,
执行,就可以生成数据表对应的entity、mapper.java、mapper.xml 文件了。
二、Spring Boot Maven Plugin
(官网介绍地址:https://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins.html#build-tool-plugins-maven-plugin)
首先看一下官方文档的介绍:
The Spring Boot Maven Plugin provides Spring Boot support in Maven, letting you package executable jar or war archives and run an application “in-place”. To use it, you must use Maven 3.2 (or later).
就是说,Spring Boot Maven Plugin 在Maven中提供了Spring Boot支持,使得我们可以使用mvn package 命令,将我们的程序 打包可执行jar或war包并直接运行应用程序,官方文档中也给出我们提示: 要使用它,必须使用Maven 3.2(或更高版本)。
看一下如何引用,很简单的,在 pom 文件中引入插件就可以啦:
org.springframework.boot
spring-boot-maven-plugin
2.2.0.RELEASE
repackage
然后在 idea 中运行命令 mvn package,等执行完以后你会发现,target 包下多了一个 xxx.jar (xxx 就是你项目的项目名啦)的 jar 包 。
一般的maven项目的打包命令,不会把依赖的jar包也打包进去的,只是会放在jar包的同目录下,能够引用就可以了,
但是spring-boot-maven-plugin插件,会将依赖的jar包全部打包进去,放在lib目录下。
另外,还提供了一些其他的支持:
run:运行Spring Boot应用程序。
repackage:将jar / war重新打包为可执行文件。(一般我们项目中都用这个)
start和stop:来管理Spring Boot应用程序的生命周期(即用于集成测试)。
build-info:生成供执行器使用的构建信息。
三、maven-resources-plugin
官网地址:http://maven.apache.org/plugins/maven-resources-plugin/
官网介绍:
- Resources插件负责处理项目资源文件并拷贝到输出目录。Maven将main resources和test resources分开,
一般main resources关联main source code,而test resources关联test source code。
因此,我们可以将main resources和test resources分离。
从2.3版开始,此插件使用Maven Filtering 共享组件来筛选资源。
- Resources插件通过
标签输出文件复制到指定目录,其中 有三个可选项: - 1.resources:resources,拷贝main resources到main output directory。默认情况下它绑定了process-resources生命周期阶段。
- 2.resources:testResources,拷贝test resources到test output directory。它绑定了process-test-resources生命周期阶段,当执行surefire:test插件目标前就会执行此阶段。
- 3.resources:copy-resources,手动拷贝资源到输出目录,因此要配置要复制的资源,并指定outputDirectory。
前两种比较简单,就不贴代码了,给出第三种手动拷贝资源的官方示例:
maven-resources-plugin
3.1.0
copy-resources
validate
copy-resources
${basedir}/target/extra-resources
src/non-packaged-resources
true
...
其中
指出在项目 validate 阶段拷贝资源文件,
标签指出资源文件拷贝到哪里。
默认情况下,Maven会从项目的src/main/resources目录下查找资源。如果你的资源不在此目录下,可以用
src/my-resources
此外,可以通过
resource1
resource2
resource3
四、docker-maven-plugin
官方文档:https://github.com/spotify/docker-maven-plugin#bind-docker-commands-to-maven-phases
作用:
我们可以使用此插件从我们的Maven项目中构建Docker映像。 例如,在项目的构建过程输出运行该服务的Docker映像。
配置:
配置我们的镜像有两种方式,
第一种:
直接在pom中指定要添加到映像中的base image, entry point, cmd, maintainer 和 files ,而无需单独的Dockerfile。
com.spotify
docker-maven-plugin
1.2.0
example
java:openjdk-8-jdk-alpine
["java", "-Dspring.profiles.active=${spring.profiles.active}", "-Duser.timezone=Asia/Shanghai", "-jar", "/${project.build.finalName}.jar"]
/
${project.build.directory}
${project.build.finalName}.jar
第二种:
如果使用 VOLUME 或其他 Dockerfile 中的命令的时候,需要使用该种方式,创建一个 Dockerfile,并在需要在 POM 中配置 dockerDirectory 来指定路径。
...
com.spotify
docker-maven-plugin
VERSION GOES HERE
example
docker
/
${project.build.directory}
${project.build.finalName}.jar
...
总结:
一个用于构建和推送Docker映像的Maven插件。使用Maven 插件构建Docker 镜像,在
即可在指定的maven生命周期内生成镜像,搭配jenkins使用效果更佳。
五、maven-assembly-plugin
官方文档:http://maven.apache.org/plugins/maven-assembly-plugin/
官方介绍:
Assembly 插件的主要作用是,允许用户将项目输出与它的依赖项、模块、站点文档、和其他文件一起组装成一个可分发的归档文件。
简单说来也是个打包组件,定制化的打包项目,指定打包哪些文件,指定输出地址,打包阶段,指定输出的包类型
贴出一个官方示例吧:
maven-assembly-plugin
3.1.1
your.group.id
my-assembly-descriptor
1.0-SNAPSHOT
make-assembly
package
single
myassembly