使用exec-maven-plugin运行Jar文件时遇mainClass参数错误
解决exec-maven-plugin的"Parameters for mainClass are missing or invalid"错误
别着急,我来帮你排查下这个常见问题,大概率是配置细节没处理到位,咱们一步步来:
最常见的原因:mainClass配置不完整或有误
这个错误最常出现的情况就是你没写全主类的完整包名+类名。比如你只写了DataDictionaryChecker,但正确的应该是com.yourteam.tools.DataDictionaryChecker——必须是类的全限定名称,不能省略包路径。
检查插件配置的细节
你可以参考下面的正确配置模板调整你的代码,重点关注这些点:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>3.1.0</version> <!-- 建议把旧版本1.3.2升级到稳定新版本,避免兼容性问题 --> <executions> <execution> <id>DataDictinary-Check</id> <phase>verify</phase> <goals> <goal>java</goal> </goals> <configuration> <!-- 替换成你自己的全限定主类名 --> <mainClass>com.yourpackage.DataDictionaryChecker</mainClass> <!-- 如果主类需要接收参数,按需添加 --> <!-- <arguments> <argument>--config=./config.yml</argument> </arguments> --> <!-- 如果主类不在当前项目,而是来自依赖的Jar,加上这个配置 --> <!-- <classpathScope>runtime</classpathScope> --> </configuration> </execution> </executions> </plugin>
快速调试的小技巧
如果还是不确定问题在哪,可以先跳过插件配置,直接用命令行测试:
mvn exec:java -Dexec.mainClass=com.yourpackage.DataDictionaryChecker
如果这个命令能正常执行,说明你插件配置里的mainClass肯定有拼写错误或者包名漏写了;如果命令也报错,那就要检查:
- 主类是否真的存在(看target/classes里有没有对应的.class文件)
- 主类有没有正确的
public static void main(String[] args)方法 - 依赖的Jar是否已经正确引入到项目中
内容的提问来源于stack exchange,提问作者jacinth joy
相关产品推荐
相关产品推荐

