Lucene 4.0 이클립스에 올리기 (how to import lucene4.0 in eclipse)

검색엔진 라이브러리의 De facto 인 Lucene 4.0을 이클립스에 import 하고 디버깅을 하기 위한 방법을 알아보도록 하겠다.

Ant 설치

다운로드 후 Path, ANT_HOME 설정을 진행하자.

다운로드

각 환경마다 위치는 달라지겠지만, C:/apache-ant-1.8.4 압축을 풀었고 2가지 설정(Path, ANT_HOME) 환경변수 설정을 한다.

Path=%Path%;C:/apache-ant-1.8.4/bin
ANT_HOME=C:/apache-ant-1.8.4

콘솔화면에서 ant 라고 쳤을 때, 명령이 정상적으로 실행된다면 맞게 설정한 것이다.

참고. 환경변수 설정법 – http://snoopybox.co.kr/1299
참고. ANT 설치 – https://www.google.com/search?q=ant+설치

ivyIDE

루씬에서는 의존성관리를 위해서 Apache Ivy를 사용하고 있다, Hadoop에서도 동일하게 ant + ivy 빌드 구조를 가져가고 있다. 이클립스에서 ant는 기본적으로 내장이 되어서 배포되지만, ivy를 사용하려고하면 ivyIDE를 설치해야 한다. 이클립스 플러그인으로 되어 있으며, 이클립스 플러그인 설치하는 방식을 그대로 이용하면 된다.

  1. Help > Software Updates > Find and Install…
  2. Add 버튼 클릭
  3. Add Repository
    name : ivyIDE
    URL: http://www.apache.org/dist/ant/ivyde/updatesite
  4. 설치 진행

lucene 4.0 source 다운로드

다운로드

직접링크 : http://apache.tt.co.kr/lucene/java/4.0.0/lucene-4.0.0-src.tgz

절절한 위치에 압축을 풀자.

ant + ivy Build

압축을 푼 후 lucne 4.0(D:/lucene-4.0.0) 파일들을 유심히 살펴보아야 한다. 루씬에서는 다양한 submodule 들이 연결되어있고, 각 모듈에서 사용하는 공통 의존성들도 정의되어 있다. 특히 빌드를 위해서는 4개의 파일을 잘살펴보아야 한다.

ivy-settings.xml 파일을 제외한 나머지 파일들에 대해서는 일반적인 Ant 스크립트이며, 해당 파일에서 target 을 잘보아야 한다.

  • build.xml
  • common-build.xml
  • module-build.xml
  • ivy-settings.xml

루씬에서는 IndexWirter, IndexReader 동시성처리를 하며 테스트를 에서 하기 위해서 다양한 라이브러리를 사용하고 있다.

따라서, 다음과 같은 Target을 주어 빌드를 해야지 ivy에서 의존성파일을 다운로드 받고 정상적으로 테스트 할 수 있다.

Ant 실행을 하면, 다음과 같은 실패메세지가 뜨며, 정상동작하지 않는다.

PS D:Projectslucene-4.0.0> ant test
Buildfile: D:Projectslucene-4.0.0build.xml

test-core:

ivy-availability-check:
[echo]
[echo] This build requires Ivy and Ivy could not be found in your ant classpath.
[echo]
[echo] (Due to classpath issues and the recursive nature of the Lucene/Solr
[echo] build system, a local copy of Ivy can not be used an loaded dynamically
[echo] by the build.xml)
[echo]
[echo] You can either manually install a copy of Ivy 2.2.0 in your ant classpath:
[echo] http://ant.apache.org/manual/install.html#optionalTasks
[echo]
[echo] Or this build file can do it for you by running the Ivy Bootstrap target:
[echo] ant ivy-bootstrap
[echo]
[echo] Either way you will only have to install Ivy one time.
[echo]
[echo] 'ant ivy-bootstrap' will install a copy of Ivy into your Ant User Library:
[echo] C:UsersAdministrator/.ant/lib
[echo]
[echo] If you would prefer, you can have it installed into an alternative
[echo] directory using the "-Divy_install_path=/some/path/you/choose" option,
[echo] but you will have to specify this path every time you build Lucene/Solr
[echo] in the future...
[echo] ant ivy-bootstrap -Divy_install_path=/some/path/you/choose
[echo] ...
[echo] ant -lib /some/path/you/choose clean compile
[echo] ...
[echo] ant -lib /some/path/you/choose clean compile
[echo]
[echo] If you have already run ivy-bootstrap, and still get this message, please
[echo] try using the "--noconfig" option when running ant, or editing your global
[echo] ant config to allow the user lib to be loaded. See the wiki for more details:
[echo] http://wiki.apache.org/lucene-java/HowToContribute#antivy
[echo]

ivy-fail:

BUILD FAILED
D:Projectslucene-4.0.0build.xml:49: The following error occurred while executing this line:
D:Projectslucene-4.0.0common-build.xml:337: Ivy is not available

Total time: 1 second

따라서, 위 메세지처럼 “ant ivy-bootstrap” 을 실행하자.

PS D:Projectslucene-4.0.0> ant ivy-bootstrap
Buildfile: D:Projectslucene-4.0.0build.xml

ivy-bootstrap1:
[mkdir] Created dir: C:UsersAdministrator.antlib
[echo] installing ivy 2.2.0 to C:UsersAdministrator.antlib
[get] Getting: http://repo1.maven.org/maven2/org/apache/ivy/ivy/2.2.0/ivy-2.2.0.jar
[get] To: C:UsersAdministrator.antlibivy-2.2.0.jar

ivy-bootstrap2:

ivy-checksum:

ivy-bootstrap:

BUILD SUCCESSFUL
Total time: 4 seconds

자기 자신의 ant lib 폴더 안에 ivy-2.2.0.jar 파일을 다운로드 받았다, 따라서 이제부터는 정상동작을 할 것이다.

“D:/Projects/lucene-4.0.0” 폴더에서 “ant test” 명령어를 실행하면, 테스트케이스가 실행되는 것을 확인할 수 있다.

PS D:/lucene-4.0.0 ant test
Buildfile: D:/Projects/lucene-4.0.0/build.xml</code>

test-core:

ivy-availability-check:

ivy-fail:

......중략......

install-junit4-taskdef:
test-backwards:
test:

BUILD SUCCESSFUL
Total time: 6 minutes 57 seconds

이클립스 import

  1. File > New > Java Project
  2. Use default location 체크 해제
  3. Location 위치 설정 : D:lucene-4.0.0
  4. Finish

정상적으로 import 가 될것이며, test package 에서 디버깅을 하면 정상적으로 디버깅모드로 전환되면서 디버깅할 수 있다.
( 덧, 프로젝트 인코딩은 UTF-8 로 해야 한다. 윈도우에서 import 시, MS949로 되어있으면 오류가 남 )

이제부터 즐거운 프로그래밍!! ㅎㅎ😉

PS. 좋은 코멘트 주신 장용석님 감사합니다.😉

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중