`

Protobuff Maven整合

 
阅读更多

原创转载请注明出处:http://agilestyle.iteye.com/blog/2395056

 

Project Directory


 

Maven Dependency

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.fool.protobuff</groupId>
    <artifactId>protobuff-demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <protobuf.version>3.4.0</protobuf.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <version>${protobuf.version}</version>
        </dependency>
        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java-util</artifactId>
            <version>${protobuf.version}</version>
        </dependency>
        <dependency>
            <groupId>com.googlecode.protobuf-java-format</groupId>
            <artifactId>protobuf-java-format</artifactId>
            <version>1.4</version>
        </dependency>
    </dependencies>

    <build>
        <extensions>
            <extension>
                <groupId>kr.motd.maven</groupId>
                <artifactId>os-maven-plugin</artifactId>
                <version>1.5.0.Final</version>
            </extension>
        </extensions>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.xolstice.maven.plugins</groupId>
                <artifactId>protobuf-maven-plugin</artifactId>
                <version>0.5.0</version>
                <configuration>
                    <protocArtifact>com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}</protocArtifact>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>compile-cpp</goal>
                            <goal>compile-python</goal>
                        </goals>
                        <configuration>
                            <attachProtoSources>true</attachProtoSources>
                            <writeDescriptorSet>true</writeDescriptorSet>
                            <attachDescriptorSet>true</attachDescriptorSet>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

 

addressbook.proto

syntax = "proto2";

package org.fool.protobuff;

option java_package = "org.fool.protobuff.test";
option java_outer_classname = "AddressBookProtos";

message Person {
    required string name = 1;
    required int32 id = 2;
    optional string email = 3;

    enum PhoneType {
        MOBILE = 0;
        HOME = 1;
        WORK = 2;
    }

    message PhoneNumber {
        required string number = 1;
        optional PhoneType type = 2 [default = HOME];
    }

    repeated PhoneNumber phones = 4;
}

message AddressBook {
    repeated Person person = 1;
}

 

mvn clean install

查看生成的AddressBookProtos.java文件


 

Reference

https://developers.google.com/protocol-buffers/docs/javatutorial

http://www.jianshu.com/p/1538bf85dad1

 

 

 

  • 大小: 130 KB
  • 大小: 344.3 KB
分享到:
评论

相关推荐

    maven整合ssh案例

    Maven整合SSH案例 ************************************************************************************* 注意:运行前请配置Maven环境,和修改config.properties中数据库名称用户和密码,并且修改Tuser中的...

    使用Maven整合ssm

    【SSM整合与Maven应用】 SSM框架指的是Spring、SpringMVC和MyBatis的集成,这是一种常见的Java企业级应用开发架构。Maven作为项目管理工具,是SSM整合的关键,它帮助开发者管理和构建项目,确保依赖关系的正确解决...

    Maven 整合SringMVC及MyBatis

    【标题】"Maven 整合SringMVC及MyBatis" 在现代Java开发中,Maven、SpringMVC和MyBatis是常见的技术栈,它们分别负责项目构建、Web层控制和数据访问。Maven作为一个强大的项目管理工具,能够帮助开发者管理依赖、...

    maven整合ssh项目,包含数据库

    本篇将详细介绍如何在Eclipse环境下,利用Maven整合SSH项目,并包含数据库连接的配置与测试。 首先,我们需要了解SSH框架的基本概念: 1. Struts2:这是一个基于MVC设计模式的Web应用框架,负责处理用户请求并返回...

    maven 整合ssm框架

    1.通过maven整合ssm+mysql 可以直接运行 建表语句放在项目sql文件中 2. 2.运行成功输入http://localhost:8080/test/selectUserAsJson 3.后续可自行添加功能 4.基于idea

    maven+ssm完美整合

    本教程将详细介绍如何通过Maven来整合Spring、SpringMVC和MyBatis,实现一个完整的后端开发环境。同时,由于包含了一个POI实例,我们还将探讨如何使用Apache POI库处理Excel数据。 1. Maven简介: Maven是一个基于...

    SpringMvc+Spring+Mybatis+Maven整合.part10

    通过SpringMvc+Spring+Mybatis+Maven整合,学习用maven搭建框架

    SSM+maven整合(所有jar包都是在maven上2017.8.30最新的包).zip

    在这个名为"SSM+maven整合(所有jar包都是在maven上2017.8.30最新的包).zip"的压缩包中,我们可以推测它包含了SSM框架与Maven整合所需的最新依赖库。下面将详细介绍SSM框架和Maven在Java开发中的作用,以及它们如何...

    freemarker+ssm+maven整合.rar

    SSM(Spring、SpringMVC、...以上就是"freemarker+ssm+maven整合"项目的主要知识点。这个项目不仅展示了如何将这些组件整合在一起,还提供了实际操作的参考,对于学习和理解Java Web开发的SSM架构有着重要的实践意义。

    maven 整合ssh之一

    【标题】"Maven 整合SSH之一" 涉及到的是在Java开发中如何使用Maven构建工具来整合Spring、Struts2和Hibernate这三个流行框架,这通常被称为SSH集成。SSH是一套强大的Java Web应用程序开发解决方案,可以帮助开发者...

    Spring SpringMVC Mybatis Activiti Maven整合demo

    综上所述,"Spring SpringMVC Mybatis Activiti Maven整合demo"是一个典型的Java企业级应用架构,它展示了如何使用这些工具来构建一个完整的、具有流程管理能力的Web应用。开发者可以通过这个示例学习到如何整合这些...

    Maven整合Spring+SpringMVC+Hibernate+SpringDataJPA

    在现代Java Web开发中,"Maven整合Spring+SpringMVC+Hibernate+SpringDataJPA"是一个常见的架构组合,被广泛应用于构建企业级应用程序。这个组合通常被称为"SSM",其中"M"代表Maven,"S"代表Spring,包括Spring核心...

    maven整合ssm的pom.xml

    maven整合ssm的所有pom! maven整合ssm的所有pom! maven整合ssm的所有pom! maven整合ssm的所有pom! maven整合ssm的所有pom!

    SpringMvc+Spring+MyBatis+Maven整合实例

    SpringMvc+Spring+MyBatis+Maven整合实例代码,教程见:http://www.cnblogs.com/NaughtyBaby/p/4754881.html 该教程是通过看: ... 《SpringMvc+Spring+Mybatis+Maven整合视频教程1》 编写供学习使用的。

    maven整合ssh2

    ** Maven 整合 SSH2 知识点详解 ** Maven 是一个强大的项目管理和构建工具,在Java开发领域广泛应用。SSH2 则是 Spring、Struts 和 Hibernate 三个开源框架的组合,它们分别负责控制层、视图层和持久层的处理。将 ...

    spring springmvc mybatis maven整合

    在SSM整合中,Maven用于统一管理Spring、SpringMVC、MyBatis的依赖库。 整合SSM的过程主要包括以下几个步骤: 1. 配置POM.xml:在项目的根目录下创建`pom.xml`文件,引入Spring、SpringMVC、MyBatis和Maven的相应...

    Maven整合SSM示例

    本示例将详细介绍如何使用Maven来整合SSM框架,以实现一个完整的Java web应用。 一、Maven介绍 Maven是一个基于项目对象模型(POM)的概念,用于管理项目的构建、报告和文档。它通过POM文件定义项目依赖、构建过程和...

    maven整合ssm的demo

    maven整合ssm的简单demo,代码命名规范,逻辑简单,所用jar都是最新版的已经在pom.xml中配置好,数据库脚本在resource中,直接运行即可,代码适合初学maven整合ssm的童鞋,如有问题请私信我。

    SpringMvc+Spring+Mybatis+Maven整合示例源码

    在本示例中,Maven将负责编译、打包和运行这个Spring+SpringMvc+Mybatis的整合应用。 在整合这些框架时,开发者通常会按照以下步骤进行: 1. 配置Maven的pom.xml文件,声明所有必要的依赖,包括Spring、SpringMvc...

    基于maven整合的SSMdemo

    在"基于maven整合的SSMdemo"项目中,我们将深入探讨这三个框架如何协同工作,以及如何通过Maven进行有效的依赖管理和构建流程。 **1. Maven的引入与配置** Maven是Apache开源的一个项目管理工具,它可以帮助开发者...

Global site tag (gtag.js) - Google Analytics