Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在'之后仍然找不到包;mvn安装';_Java_Maven_Protocol Buffers - Fatal编程技术网

Java 在'之后仍然找不到包;mvn安装';

Java 在'之后仍然找不到包;mvn安装';,java,maven,protocol-buffers,Java,Maven,Protocol Buffers,我正在尝试使用Google protocol buffer for Java(我是Java的新手,正在尝试) 首先,我使用OSX,并使用brew install protobuf命令安装了协议缓冲区 protoc命令运行正常 我已经通过protoc生成了MyProtocol.java 我已经安装了Java协议缓冲区作为它的指令(README.txt) mvn install命令创建了.m2目录,我可以在目录的某个地方找到protobuf-java-2.4.1.jar文件 我编写了简单的测试Jav

我正在尝试使用Google protocol buffer for Java(我是Java的新手,正在尝试)

首先,我使用OSX,并使用
brew install protobuf
命令安装了协议缓冲区

protoc命令运行正常

我已经通过protoc生成了
MyProtocol.java

我已经安装了Java协议缓冲区作为它的指令(README.txt)

mvn install
命令创建了
.m2
目录,我可以在目录的某个地方找到
protobuf-java-2.4.1.jar
文件

我编写了简单的测试Java代码,只是导入了
MyProtocol.Java
,它抱怨找不到包
com.google.protobuf

所以,我刚刚制作了jar文件
mvn包
,并将其目录添加为类路径,它编译得很好

javac -classpath <protobuf-dir>/jara/target/classes Test.java ./com/example/tutorial/AddressBookProtos.java
javac-classpath/jara/target/classes Test.java./com/example/tutorial/AddressBookProtos.java
如果我使用maven的存储库目录(
~/.m2/repository
),它会再次抱怨

如果我安装包,maven不为我创建类路径吗?
如果没有,我如何使用maven安装的package来编译代码?

maven不会更改您的设置,因此您可以根据需要设置类路径

但是,Maven至少有两种方法可以阻止您:

  • 您可以使用来收集目录或存档中的所有依赖项,这样您只需向类路径添加一个目录即可运行程序
  • 您可以使用添加程序的运行作为POM中的目标,然后使用Maven运行它

有一个目标,叫做做你需要的事。您可以获得使用提示

您是否依赖pom.xml文件中的protobuf.jar?maven基于依赖项和项目的打包为您构建类路径。应该没有必要乱弄类路径。