Maven 插件

本文最后更新于:2024年9月8日 晚上

Maven 插件

Spring Boot

  • spring-boot-maven-plugin插件用来打包,我们只需要在pom.xml中加入以下配置。
1
2
3
4
5
6
7
8
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
  • 如果不喜欢默认的项目名+版本号作为文件名,可以加一个配置指定文件名:
1
2
3
4
5
6
7
<project ...>
...
<build>
<finalName>awesome-app</finalName>
...
</build>
</project>

Jetty

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.39.v20210325</version>
<configuration>
<!-- 端口号 -->
<httpConnector>
<port>8080</port>
</httpConnector>
<!-- 项目访问路径 -->
<webAppSourceDirectory>web/</webAppSourceDirectory>
<webApp>
<contextPath>/</contextPath>
</webApp>
</configuration>
</plugin>

Tomcat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<plugin>
<groupId>org.opoo.maven</groupId>
<artifactId>tomcat9-maven-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<!-- tomcat 的端口号 -->
<port>8080</port>
<!-- 访问应用的路径 -->
<path>/</path>
<!-- URL按UTF-8进行编码,解决中文参数乱码 -->
<uriEncoding>UTF-8</uriEncoding>
<!-- tomcat名称 -->
<server>tomcat9</server>
</configuration>
</plugin>
  • tomcat插件常用命令:
1
2
3
4
5
6
tomcat:deploy 部署一个web war包。
tomcat:reload 重新加载web war包。
tomcat:start 启动。
tomcat:stop 停止。
tomcat:undeploy 停止一个war包。
tomcat:run 启动嵌入式tomcat ,并运行当前项目。

远程部署

  • pom.xml
1
2
3
4
5
<server>
<id>tomcat7</id> <!--Id名称可以随便写-->
<username>tomcat</username> <!--用户名与tomcat配置中username相同-->
<password>tomcat</password> <!--密码与tomcat配置中password相同-->
</server>

引入tomcat7插件

  • maven中关于tomcat的插件有tomcat6插件和tomcat7插件,普遍使用的是tomcat7插件,在pom.xml中添加以下片段:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!--要部署的远程服务器地址 ip端口,后面/manager/text为tomcat管理项目的路径不能改变-->
<url>http://localhost:8080/manager/text</url>
<!--maven setting.xml中配置的serverID名称-->
<server>tomcat7</server>
<!--项目要部署的路径 /表示根路径默认Root-->
<path>/</path>
<!--项目是否更新默认true 可不配置-->
<update>true</update>
<!--maven setting.xml以及tomcat tomcat-users.xml 中配置的用户名密码-->
<username>tomcat</username>
<password>tomcat</password>
</configuration>
</plugin>
<!--以下配置不是必须,为了保证编译版本,tomcat7插件默认支持的JDK1.7-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
  • 配置完成,接下来运行run as maven build,然后在Goals中填上tomcat7:deploy,运行项目,实现maven热部署了,看到以下信息提示,就表示执行成功了。
1
2
3
4
5
6
7
8
9
Copy[INFO] tomcatManager status code:200, ReasonPhrase:OK
[INFO] OK - Deployed application at context path /
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.560 s
[INFO] Finished at: 2019-04-18T20:37:57+08:00
[INFO] Final Memory: 21M/222M
[INFO] ------------------------------------------------------------------------

注意

  • 部署项目前要先启动tomcat服务器。
  • 在执行tomcat7:deploy命令时注意jre版本的配置,JDK版本选择1.7
  • 首次执行选择第一个maven build,非首次执行选择第二个maven build 命令执行tomcat7:redeploy

screw

  • 导出数据库表结构文档。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<plugin>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-maven-plugin</artifactId>
<version>1.0.5</version>
<dependencies>
<!-- 数据库连接 -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
</dependencies>
<configuration>
<!-- 数据库相关配置 -->
<driverClassName>com.mysql.cj.jdbc.Driver</driverClassName>
<jdbcUrl>jdbc:mysql://localhost:3306/test</jdbcUrl>
<username>root</username>
<password>123456</password>
<!-- screw 配置 -->
<fileType>WORD</fileType>
<title>数据库文档</title>
<fileName>测试文档名称</fileName>
<description>数据库文档生成</description>
<version>${project.version}</version>
<openOutputDir>false</openOutputDir>
<produceType>freemarker</produceType>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!