2012-09-20 2 views
2

자바 용 Google 프로토콜 버퍼를 사용하려고합니다. (저는 자바에 대한 초보자입니다.여전히 'mvn install'패키지를 찾지 못했습니다.

우선 OSX를 사용 중이며 brew install protobuf 명령으로 프로토콜 버퍼를 설치했습니다.

protoc 명령이 정상적으로 작동합니다.

나는 protoch에 의해 MyProtocol.java을 생성했습니다.

Java 용 프로토콜 버퍼 (instruction) (README.txt)를 설치했습니다.

mvn install 명령이 .m2 디렉토리에 생성되었으며 디렉토리의 어딘가에 protobuf-java-2.4.1.jar 파일이 있습니다.

MyProtocol.java을 가져 오는 간단한 테스트 Java 코드를 작성했으며 패키지 com.google.protobuf을 찾을 수 없다는 불만을 제기했습니다.

그래서 단지 jar 파일을 mvn package으로 만들고 해당 디렉토리를 CLASSPATH로 추가하면 컴파일이 잘됩니다. 내가 받는다는의 저장소 디렉토리 (~/.m2/repository)를 사용하는 경우

javac -classpath <protobuf-dir>/jara/target/classes Test.java ./com/example/tutorial/AddressBookProtos.java 

, 그것은 다시 뿌려줍니다.

패키지를 설치하면 Maven이 나를 위해 CLASSPATH를 작성하지 않습니까? 그렇지 않다면, maven으로 설치된 패키지를 사용하여 어떻게 코드를 컴파일 할 수 있습니까?

+0

pom.xml 파일의 protobuf.jar에 종속되어 있습니까? maven은 의존성과 프로젝트 패키징을 기반으로 클래스 경로를 만듭니다. classpath와 함께 주위를 어지럽힐 필요가 없습니다. – wemu

답변

1

Maven은 설정을 변경하지 않으므로 필요에 따라 CLASSPATH를 설정해야합니다. 당신은 단지 하나를 추가 할 필요가 있도록

  • 당신은 디렉토리 또는 아카이브의 모든 종속성을 수집하는 Maven Assembly plugin를 사용할 수 있습니다

    그러나 메이븐 HALP 당신이 할 수있는 적어도 두 가지 방법이 있습니다 디렉토리를 CLASSPATH에 추가하여 프로그램을 실행하십시오.

  • Exec Maven plugin을 사용하면 POM에서 프로그램 실행을 목표로 추가 한 다음 Maven으로 프로그램을 실행할 수 있습니다.
관련 문제