2012-09-20 34 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运行它。
相关问题