如何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虚拟主机使用的项目来演示一下这个步骤

  1. 首先我们使用hf58这个项目,进入到workspace目录,找到这个项目复制一份将文件夹改名字为ah58,改完这个名字后记得进入到子目录修改he58.iml->ah58.iml

  1. 使用IDEA打开ah58这个项目,进入到里面后首先检查maven环境是不是自己以前配置好的目录,确定无误后首先修改pom.xml,其他的都先不要动


  2. 依次点击File->project structure->project settings->project,确保project name已经是我们上面改过的ah58

  3. 再点击Modules选项卡,更改name为ah58

  4. 选中Artifacts选项卡,按照下图红色字体的提示进行操作

    注意:以上3-5的操作记得点击右下角的Apply,然后点击OK

  5. 运行界面点击Edit Configurations,修改名字为Hf58ApplicationOn ‘Update’ actionOn frame deactivation都选择Update classes and resources,最后点击Apply->OK

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yIVPj9Pn-1603378386074)(C:\\Users\\bbxyl\\Desktop\\springboot\\IDEA中如何快速复制一个Maven构建的springboot项目\\image-

以上操作全部完成后,我们今天要说的IDEA中如何快速复制一个Maven构建的springboot项目就结束了

创作打卡挑战赛 赢取流量/现金/CSDN周边激励大奖

以上是关于如何springboot2 在maven complie前,自动调用某个类的main方法?的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot2核心技术(基础入门)- 02SpringBoot2入门安装配置

springboot2.X+maven+mybatis+shiro+redis

springboot2.X+maven+mybatis+shiro+redis

springboot2.1.6整合activiti6.0

SpringBoot2.0之整合ActiveMQ(点对点模式)

SpringBoot2.0整合fastjson的正确姿势