能否通过Maven exec:java从命令行运行未在pom.xml配置的Java/Scala主类?
当然可以不用预先在pom.xml里配置那些带main方法的Java/Scala类!完全可以通过命令行直接指定要运行的类,灵活度拉满,下面给你拆解具体操作:
基础运行命令
直接在项目根目录执行这条命令,把全限定类名替换成你自己的就行:mvn exec:java -Dexec.mainClass="com.example.YourMainClass"
不管是Java类还是Scala类(只要有main方法或者继承了Scala的App特质),写法都是一样的。关于你看到的pom配置片段
你贴的那段配置,是把exec:java绑定到了Maven的某个生命周期阶段(比如默认的compile或者install),这样执行mvn install时会自动跑指定的main方法——但这是固定执行某一个类的场景。如果你的需求是随时切换不同的main类来运行,完全不需要这段executions配置,甚至只要保证项目能正常用Maven构建,连插件的基础声明都可以省(Maven会自动下载需要的插件版本)。给main方法传参
如果你的程序需要命令行参数,直接加-Dexec.args就行:mvn exec:java -Dexec.mainClass="com.example.YourMainClass" -Dexec.args="参数1 参数2"无pom插件声明时的调用
要是你的pom里完全没配置exec-maven-plugin,也可以直接用完整插件坐标调用(指定最新稳定版本就行):mvn org.codehaus.mojo:exec-maven-plugin:3.1.0:java -Dexec.mainClass="com.example.YourMainClass"
内容的提问来源于stack exchange,提问作者WestCoastProjects

