运行Java类文件时exec-maven-plugin执行失败,附pom.xml求助
解决exec-maven-plugin执行失败问题
问题根源
你碰到的*org.codehaus.mojo:exec-maven-plugin:3.1.0:exec*执行失败,结合你的pom.xml,核心问题有三个:
- 未在pom中配置exec-maven-plugin,Maven无法正确识别执行目标
- MSSQL JDBC依赖重复,其中一个groupId错误(应为
com.microsoft.sqlserver而非SQL),版本也不统一,会引发依赖冲突 - Java编译版本为11,但其中一个JDBC依赖是适配JRE8的预览版,存在兼容性问题
修复步骤
1. 修正MSSQL JDBC依赖
删除错误依赖,保留适配Java11的官方驱动:
<dependencies> <dependency> <groupId>jakarta.platform</groupId> <artifactId>jakarta.jakartaee-api</artifactId> <version>${jakartaee}</version> <scope>provided</scope> </dependency> <!-- 仅保留正确的JDBC依赖 --> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>12.4.1.jre11</version> </dependency> </dependencies>
2. 添加exec-maven-plugin配置
若需通过mvn exec:java运行主类,在build的plugins节点下添加插件配置:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>11</source> <target>11</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.3.2</version> </plugin> <!-- 配置exec插件,指定主类 --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>3.1.0</version> <configuration> <!-- 替换为你的主类全限定名,比如com.ktpl.Main --> <mainClass>com.ktpl.YourMainClass</mainClass> </configuration> </plugin> </plugins> </build>
3. 清理并重新构建
执行命令清除旧构建文件并重新编译:
mvn clean install
4. 运行主类
- 若已在pom中配置mainClass,直接执行:
mvn exec:java
- 若不想固定主类,可临时指定:
mvn exec:java -Dexec.mainClass="com.ktpl.YourMainClass"
额外检查
- 确认主类存在
public static void main(String[] args)方法 - 验证Maven依赖是否全部下载完成,无缺失或报错
内容的提问来源于stack exchange,提问作者GAJANAN KANEKAR
相关产品推荐
相关产品推荐

