이 프로젝트를보고 있습니다 : https://github.com/xtuhcy/gecco
여기에는 일부 데모 코드가 포함되어 있습니다 : https://github.com/xtuhcy/gecco/blob/master/src/test/java/com/geccocrawler/gecco/demo/MyGithub.java
저장소를 복제했습니다.
데모 코드를 실행하려고하는데 방법을 알 수 없습니다.
나는 maven을 사용하는 방법을 정말로 이해하지 못합니다.
나는 maven을 설치하고 프로젝트에 대한 종속성을 설치했습니다.
mvn verify
그리고 mvn 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
둘 다 작동하지 않았다
윽, 당신이 만든 모든 것을 좋아, 문제는 실행에 노력하고있는 클래스에 있다는 것입니다 src/test/java...
하지에 src/main/java/
. 설명하겠습니다.
Maven은 상당히 발전된 빌드 도구로, 결국 "프로덕션"에 도달 할 소스와 빌드 프로세스 중에 실행되는 테스트를 구분합니다.
좀 더 구체적으로 말하자면 다른 클래스 경로를 제공하므로 예를 들어 테스트의 경우 클래스 경로에 테스트 프레임 워크가 있고 프로덕션에는 관련이 없습니다.
테스트는 "main"메서드가 아닌 테스트 여야합니다 (실제 클래스와 달리 테스트는 주 메서드가 없으며 테스트 프레임 워크에 의해 구동 됨). 이것은 maven의 "책에 의한"접근 방식입니다.
그러나이 프로젝트는 어떤 이유로 테스트를 포함해야하는 폴더의 main 메서드가있는 클래스를 사용합니다 (저는 관리자, 다른 프로젝트에서도이 문제를 수시로 보았습니다).
따라서 테스트의 "classpath"를 사용하여 클래스를 실행해야합니다 (그렇지 않으면 maven이이 클래스를 전혀 볼 수 없습니다). 다음은 수행 방법입니다.
mvn exec:java -Dexec.mainClass="com.geccocrawler.gecco.demo.MyGithub" -Dexec.classpathScope=test
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다