我正在建立一个Maven项目,并希望能够从命令行运行该程序。
我尝试添加一个编译范围
对不起,一直收到垃圾邮件通知,因此pom.xml在这里:
Command Line: java -jar ~/Downloads/Excel-Finder-1.0-SNAPSHOT.jar
我希望程序在终端(或类似版本)中运行,但实际输出是错误: 错误:无法初始化主类me.harry0198.excelfinder.Main 造成原因:java.lang.NoClassDefFoundError:org / apache / poi / openxml4j / exceptions / InvalidFormatException
答案 0 :(得分:0)
我使用了错误的Maven插件。要解决此问题,请使用maven-shade-plugin并将依赖项重新定位到您的路径,例如:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
<relocations>
<relocation>
<pattern>org.apache.poi</pattern>
<shadedPattern>me.harry0198.excelfinder</shadedPattern>
</relocation>
</relocations>
</configuration>
</execution>
</executions>
</plugin>