如何springboot2 在maven complie前,自动调用某个类的main方法?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何springboot2 在maven complie前,自动调用某个类的main方法?相关的知识,希望对你有一定的参考价值。
您可以使用exec-maven-plugin插件来实现这个功能。该插件可以在maven的生命周期中执行Java类的main方法,只需要在pom.xml文件中配置该插件,并指定要执行的类的路径。例如:<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<!-- 在compile阶段之前执行 -->
<phase>process-classes</phase>
<!-- 执行goal为java -->
<goals>
<goal>java</goal>
</goals>
<!-- 指定要执行的类 -->
<configuration>
<mainClass>com.example.MyClass</mainClass>
</configuration>
</execution>
</executions></plugin> 参考技术A
可以通过 Maven 插件实现在 Maven 编译前自动执行某个类的 main 方法。
常用的 Maven 插件有 exec-maven-plugin 和 spring-boot-maven-plugin,下面简单介绍这两个插件的使用方法。
exec-maven-plugin
exec-maven-plugin 插件可以在 Maven 生命周期中执行外部程序或脚本。下面是一个在 Maven 编译前执行某个类的 main 方法的示例:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>run-my-class</id>
<phase>compile</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>com.example.MyClass</mainClass>
</configuration>
</execution>
</executions>
</plugin>
上面的配置将在 Maven 编译阶段(即 compile 阶段)执行 com.example.MyClass 类的 main 方法。
spring-boot-maven-plugin
spring-boot-maven-plugin 插件是 Spring Boot 应用常用的 Maven 插件,除了可以打包和运行 Spring Boot 应用外,还可以执行任意一个 Spring Boot 应用的 main 方法。下面是一个示例:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>run</goal>
</goals>
<configuration>
<mainClass>com.example.MyClass</mainClass>
</configuration>
</execution>
</executions>
</plugin>
上面的配置将执行 com.example.MyClass 类的 main 方法。需要注意的是,这个插件会启动一个内嵌的 Tomcat 服务器来运行应用程序,如果只是为了执行某个 main 方法,可能会不必要地启动一个 Web 服务器,可以考虑使用 spring-boot:run 命令代替。
在以上两个插件中,都需要指定要执行的类的 main 方法。这个类需要在编译后的 classpath 中可见。如果使用 Spring Boot 的插件,则需要在类中添加 @SpringBootApplication 注解,以便 Spring Boot 自动配置相关的 Bean。
SpringBoot.10.IDEA中如何快速复制一个Maven构建的SpringBoot项目
如何在IDEA中复制一个Maven构建的springboot项目,我们使用nginx虚拟主机使用的项目来演示一下这个步骤
- 首先我们使用
hf58
这个项目,进入到workspace目录,找到这个项目复制一份将文件夹改名字为ah58
,改完这个名字后记得进入到子目录修改he58.iml
->ah58.iml
-
使用IDEA打开
ah58
这个项目,进入到里面后首先检查maven环境是不是自己以前配置好的目录,确定无误后首先修改pom.xml
,其他的都先不要动
-
依次点击
File->project structure->project settings->project
,确保project name
已经是我们上面改过的ah58
-
再点击
Modules
选项卡,更改name为ah58
-
选中
Artifacts
选项卡,按照下图红色字体的提示进行操作注意:以上3-5的操作记得点击右下角的
Apply
,然后点击OK
-
运行界面点击
Edit Configurations
,修改名字为Hf58Application
,On ‘Update’ action
与On frame deactivation
都选择Update classes and resources
,最后点击Apply
->OK
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yIVPj9Pn-1603378386074)(C:\\Users\\bbxyl\\Desktop\\springboot\\IDEA中如何快速复制一个Maven构建的springboot项目\\image-
以上操作全部完成后,我们今天要说的IDEA中如何快速复制一个Maven构建的springboot项目
就结束了
以上是关于如何springboot2 在maven complie前,自动调用某个类的main方法?的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot2核心技术(基础入门)- 02SpringBoot2入门安装配置
springboot2.X+maven+mybatis+shiro+redis
springboot2.X+maven+mybatis+shiro+redis