当前位置: 首页 > 知识库问答 >
问题:

将protobuf依赖项添加到maven时出错

聂季同
2023-03-14

我正在尝试将protobuf依赖项添加到我的maven项目中。我已经使用mvn install安装了protobuf jar文件:install-file-Dpackaging = jar \-DgeneratePom = true \ < br >-DgroupId = com . Google . proto buf \-DartifactId = proto buf-Java \-Dfile = proto buf-Java-2 . 5 . 0 . jar \-d version = 2 . 5 . 0

Mypom。xml文件如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ProtobufExample</groupId>
<artifactId>ProtobufTest</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>ProtobufTest</name>
<url>http://maven.apache.org</url>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <skip.tests>false</skip.tests>
</properties>


<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <version>2.4.1</version>
            <scope>compile</scope>
        </dependency>

</dependencies>
<build>
    <finalName>ProtobufTest</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.3.1</version>
            <configuration>
                <finalName>${project.name}-${project.version}</finalName>
            </configuration>
        </plugin>

        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <appendAssemblyId>false</appendAssemblyId>
                <finalName>${project.name}-${project.version}</finalName>
                <descriptors>
                    <descriptor>src/assembly/dist.xml</descriptor>
                </descriptors>
            </configuration>
        </plugin>

        <plugin>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <version>2.5.0</version>
            <executions>
                <execution>
                    <id>generate-sources</id>
                    <goals>
                        <goal>test</goal>
                    </goals>
                    <phase>generate-sources</phase>
                    <configuration>
                        <protoSourceRoot>${basedir}/src/main/proto/</protoSourceRoot>
                        <includes>
                            <param>**/*.proto</param>
                        </includes>
                    </configuration>
                </execution>
            </executions>
            <configuration>
                <protocExecutable>/usr/local/bin/protoc</protocExecutable>
            </configuration>
        </plugin>

    </plugins>

</build>

当我尝试使用“mvn test”测试它时,我得到以下错误:无法解析com.google.protobuf的插件描述符:protobuf-java:2.5.0在META-INF/maven/plugin.xml中没有找到插件描述符

请帮我弄清楚我哪里错了。

共有1个答案

阴波峻
2023-03-14

根据pom文件的以下片段查找问题:

  <plugin>
    <groupId>com.google.protobuf</groupId>
    <artifactId>protobuf-java</artifactId>
    <version>2.5.0</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <goals>
                <goal>test</goal>
            </goals>
            <phase>generate-sources</phase>
            <configuration>
                <protoSourceRoot>${basedir}/

问题是protobuf java不是一个插件。所以这不可能奏效。

 类似资料:
  • 问题内容: 我有一个依赖 然后我执行。添加了所有本机文件和远程Maven库,但是没有此jar。 更新 当我尝试通过运行应用程序时。它返回一个错误,指出上述依赖项中没有任何类(NoClassDefFoundError:de.matthiasmann.twl.ForExample)。我想将这个jar中的类添加到myjar.jar中(与maven使用远程依赖项相同)。我如何配置Maven来做到这一点?

  • 我们用Maven和Tycho构建了一个Eclipse插件。然而,目前我们仍然通过一堆手动添加的JAR文件而不是Maven来提供所有的项目依赖。这是由于以下原因:(1)依赖项不能通过标准的Eclipse更新站点获得(至少不能在当前版本中获得),(2)依赖项不能作为捆绑包获得。 这些依赖项中最大的部分是Selenium库(API,远程,特定于浏览器的库及其传递依赖项,例如Guava等)。 我浪费了几个

  • 如何将此WorldEdit依赖项添加到Maven项目中?http://maven.sk89q.com/artifactory/repo/com/sk89q/worldedit/worldedit-bukkit/我需要6.1.1快照。 是否有算法来获取组ID工件ID和版本?

  • 错误:无法初始化主类com.companyname.bank.App,原因是:java.lang.NoClassDefFoundError:org/apache/http/client/ResponseHandler 我在pom.xml文件中添加了依赖项,在/src/lib中也添加了相关的.jar文件之后,这个报告一直出现。真的很困惑,不知道怎么解决。 请帮我一把。谢谢。 以下是我的操作流程: >

  • 我尝试了以下链接:https://docs.microsoft.com/en-us/azure/devops/artifacts/get-start-maven?view=azure-devops