在maven项目中运行代码...找不到类

我正在看这个项目: https://github.com/xtuhcy/gecco

它包含一些演示代码: https://github.com/xtuhcy/gecco/blob/master/src/test/java/com/geccocrawler/gecco/demo/MyGithub.java

我克隆了仓库。

我正在尝试运行演示代码,但我不知道怎么做。

我不太了解如何使用maven。

我设法安装了maven并安装了项目的依赖项。

mvn verifymvn test都运行无误

我找到了这篇文章:

http://www.vineetmanohar.com/2009/11/3-ways-to-run-java-main-from-maven/

建议做这样的事情:

mvn exec:java -Dexec.mainClass="com.vineetmanohar.module.Main"

但是我不知道mainClass的值应该是什么。

我尝试过:

mvn exec:java -Dexec.mainClass="com.geccocrawler.gecco.demo.MyGithub"
mvn exec:java -Dexec.mainClass="test.java.com.geccocrawler.gecco.demo.MyGithub"

均为java.lang.ClassnotFoundException

我也尝试过:

java -cp target/gecco-1.3.1.jar com.geccocrawler.gecco.demo.MyGithub
java -cp target/gecco-1.3.1.jar test.java.com.geccocrawler.gecco.demo.MyGithub

都不起作用

dianzishu630 回答:在maven项目中运行代码...找不到类

好的,您做对了所有问题,问题在于您要运行的类在src/test/java...中,而不是在src/main/java/中。我会解释。

Maven是相当高级的构建工具,它区分最终将达到“生产”状态的源和在构建过程中执行的测试。

更具体地说,它为它们提供了不同的类路径,因此,例如,对于测试,您将需要在类路径中具有测试框架,并在生产中与之无关。

测试应该是测试,而不是带有“ main”方法的东西(与真实类不同的测试没有main方法,而是由测试框架驱动)。这是maven的“按书预订”方法。

但是由于某些原因,该项目使用的文件夹中的类具有main方法,该类应该包含测试(我是管理员,我在其他项目中也经常看到这种情况)。

因此,您需要使用测试的“类路径”运行这些类(否则,maven根本不会看到此类),这是完成的过程:

mvn exec:java -Dexec.mainClass="com.geccocrawler.gecco.demo.MyGithub" -Dexec.classpathScope=test
本文链接:https://www.f2er.com/3130681.html

大家都在问