2012-09-20 35 views
2

我想使用谷歌協議緩衝區爲Java(我是一個新手關於Java,只是試圖)。仍然沒有找到包後,'mvn安裝'

首先,我使用的是OSX,我已經使用brew install protobuf命令安裝了協議緩衝區。

protoc命令工作正常。

我通過protoc生成了MyProtocol.java

我已經爲它的指令安裝了協議緩衝區(README.txt)。

mvn install命令創建.m2目錄,我可以在目錄中的某處找到protobuf-java-2.4.1.jar文件。

我寫了簡單的測試Java代碼剛剛導入MyProtocol.java,它抱怨找不到包com.google.protobuf

因此,我剛剛製作了jar文件mvn package,並將其目錄添加爲CLASSPATH並編譯完成。

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

如果我使用Maven的資源庫目錄(~/.m2/repository),它再次抱怨。

如果我安裝軟件包,是不是會爲我製作CLASSPATH? 如果沒有,我如何使用maven安裝的軟件包來編譯我的代碼?

+0

您是否對pom.xml文件中的protobuf.jar有依賴性? maven根據依賴項和我們項目的包裝爲你建立類路徑。應該不需要搞亂classpath。 – wemu

回答

1

Maven不會更改您的設置,因此您可以根據自己的需要設置您的CLASSPATH。

但至少有兩種方法Maven可以HALP你:

  • 可以使用Maven Assembly plugin收集在一個目錄或歸檔所有的依賴關係,這樣你只需要添加一個目錄到您的CLASSPATH以運行您的程序;
  • 您可以使用Exec Maven plugin將您的程序的運行作爲目標添加到您的POM中,然後使用Maven運行它。
相關問題