Google AdSense (text)

hidden logo stop

Moving

거지 같은 이글루스 광고노출 정책이 싫어서,
새 보금자리(http://blog.leocat.kr/)로 이사감.

[Storm] maven storm 프로젝트 컴파일 오류 Computer & Program

maven으로 storm 사용하기를 고대로 따라했는데 maven으로 컴파일이 되지 않는다. TㅅT 분명 이클립스에는 모든 dependency가 classpath에 들어 있는데도..

$ mvn package

.. 생략 ..

[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] [[PROJECT_HOME]]/src/main/java/test/testStorm/tutorial1/App.java:[3,21] error: package backtype.storm does not exist
[ERROR] [[PROJECT_HOME]]/src/main/java/test/testStorm/tutorial1/App.java:[4,21] error: package backtype.storm does not exist
[ERROR] [[PROJECT_HOME]]/src/main/java/test/testStorm/tutorial1/App.java:[5,29] error: package backtype.storm.testing does not exist
[ERROR] [[PROJECT_HOME]]/src/main/java/test/testStorm/tutorial1/App.java:[6,30] error: package backtype.storm.topology does not exist
[ERROR] [[PROJECT_HOME]]/src/main/java/test/testStorm/tutorial1/App.java:[7,27] error: package backtype.storm.utils does not exist

.. 생략 ..


실행하는 방법이 잘못 됐나 한참 찾았는데, 어랏?? storm-starter 프로젝트를 받아서 해보니 잘 된다. 두 프로젝트의 pom.xml 파일을 곰곰히 곰처럼 쳐다봤더니, storm dependency의 scope이 다르다. (다른 plugin이나 dependency도 다르긴 했지만, 별 중요한 내용은 아니고..)

<dependency>
    <groupId>storm</groupId>
    <artifactId>storm</artifactId>
    <version>0.8.2</version>
    <!-- keep storm out of the jar-with-dependencies -->
    <scope>provided</scope>
</dependency>

storm 위에서 돌아가는 코드이니 실행할 때는 storm library가 필요없다. 때문에 시스템이 제공해준다는 의미로 provided를 써줬다. 사실, 내가 따라했던 문서에는 scope이 test로 되어 있어서 compile 시 library를 찾지 못 해 오류가 발생한 것이다.


뭐든지 생각 않고 따라하면 아렇게 된다. -ㅅ-;;

- 참고

Maven - storm github Wiki
Tutorial - storm github Wiki
storm github Wiki all pages
storm-starter/blob/master/m2-pom.xml - storm github

덧글

댓글 입력 영역

Google AdSense (text/image)