Maven(Spring Boot)项目编译时执行Java主类及命令自动生成文件的方法?
实现Spring Boot源码变更时自动生成MD与HTML文档
步骤1:绑定源码编译与MD生成逻辑
把MD生成的Java主类执行逻辑绑定到项目构建的编译阶段,确保每次源码编译时自动运行生成MD文件。
Maven配置示例
在pom.xml中添加插件,指定你的MD生成主类:
<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>3.1.0</version> <executions> <execution> <phase>compile</phase> <goals> <goal>java</goal> </goals> <configuration> <mainClass>com.yourpackage.MdGeneratorMain</mainClass> <!-- 替换为你的MD生成主类全路径 --> </configuration> </execution> </executions> </plugin> </plugins> </build>
Gradle配置示例
在build.gradle中自定义任务并关联到编译流程:
task generateMd(type: JavaExec) { mainClass = 'com.yourpackage.MdGeneratorMain' // 替换为你的MD生成主类全路径 classpath = sourceSets.main.runtimeClasspath } compileJava.finalizedBy(generateMd) // 编译完成后自动执行MD生成
步骤2:自动将MD转换为HTML
在MD生成完成后,自动调用Markdown转HTML工具(如pandoc),同样绑定到构建流程中。
Maven扩展配置
在exec插件中新增一个执行节点,调用转换命令:
<execution> <phase>compile</phase> <goals> <goal>exec</goal> </goals> <configuration> <executable>pandoc</executable> <arguments> <argument>-s</argument> <argument>${project.build.directory}/generated-docs/your-doc.md</argument> <!-- 替换为你的MD文件路径 --> <argument>-o</argument> <argument>${project.build.directory}/generated-docs/your-doc.html</argument> <!-- 替换为HTML输出路径 --> </arguments> </configuration> </execution>
Gradle扩展配置
新增转HTML任务并设置依赖关系:
task convertMdToHtml(type: Exec) { dependsOn generateMd // 等待MD生成完成再执行转换 commandLine 'pandoc', '-s', 'path/to/your-doc.md', '-o', 'path/to/your-doc.html' // 替换为实际路径 } compileJava.finalizedBy(convertMdToHtml)
步骤3:开启自动构建监听
使用构建工具的自动监听功能,实现源码修改后自动触发全流程:
- Maven:执行
mvn compile -Dwatch(需Maven 3.6.3及以上版本) - Gradle:执行
gradle build --continuous
注意事项
- 确保MD生成主类能读取到最新编译后的类文件(若依赖字节码信息)
- 若不想依赖外部工具
pandoc,可集成Java实现的Markdown转HTML库(如CommonMark)到MD生成主类中 - 调整文件路径配置,匹配你的项目实际结构
内容的提问来源于stack exchange,提问作者Forcuti Alessandro
相关产品推荐
相关产品推荐

