如何通过命令行编译运行含SQLite与OpenCSV的Java Maven项目
如何通过命令行运行你的Maven SQLite + OpenCSV项目
看起来你第一次用Maven跑项目时遇到了小麻烦,别担心,咱们一步步解决问题。首先看你的pom.xml配置,里面有个关键错误——exec插件的主类路径写错了,这是导致你之前尝试失败的主要原因之一。下面给你两种简单的命令行运行方案:
第一步:修正pom.xml中的核心配置
打开你的pom.xml,找到exec-maven-plugin的配置块,把<mainClass>main</mainClass>改成实际主类路径com.ms3.dbx.MS3,同时建议升级插件版本到更稳定的3.1.0,修改后的配置如下:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>3.1.0</version> <configuration> <mainClass>com.ms3.dbx.MS3</mainClass> </configuration> </plugin>
方法一:用exec-maven-plugin直接运行(推荐,快速简便)
这种方法不需要打包成jar,Maven会自动处理所有依赖并运行程序:
- 打开命令提示符/终端,导航到你的Maven项目根目录(就是pom.xml所在的文件夹)
- 先编译项目代码:
mvn clean compile - 运行主类:
如果你不想修改pom.xml,也可以直接在命令行指定主类,跳过第一步的pom修改,直接执行:mvn exec:javamvn exec:java -Dexec.mainClass="com.ms3.dbx.MS3"
方法二:打包成可独立运行的Jar文件
如果你需要一个可以单独分发、直接运行的jar包,需要用maven-shade-plugin把所有依赖(SQLite JDBC、OpenCSV)打包进去:
- 在pom.xml的
<build><plugins>里添加shade插件配置:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.4.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.ms3.dbx.MS3</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> - 执行打包命令(跳过测试,因为你没有编写测试类):
mvn clean package -DskipTests - 打包完成后,项目的
target目录下会生成一个包含所有依赖的jar包(比如dbx-0.0.1-SNAPSHOT.jar),用以下命令运行:java -jar target/dbx-0.0.1-SNAPSHOT.jar
额外注意事项
- 确保你的用户桌面存在
ms3Interview.csv文件,否则程序会抛出IO异常 - 如果运行时遇到依赖找不到的问题,先执行
mvn clean install下载所有依赖到本地仓库
内容的提问来源于stack exchange,提问作者Jordan
相关产品推荐
相关产品推荐

