修改。此代码现在可以使用。
我试着按照这里的例子:
https://github.com/flatland/clojure-protobuf
我创建了一个新项目:
lein new protobuf
将目录更改为protobuf,我在/ resources / proto / example.proto文件中添加了以下内容:
option java_package = "com.example";
package Example;
message Person {
required int32 id = 1;
required string name = 2;
optional string email = 3;
repeated string likes = 4;
}
我的项目文件如下所示。与上面url中的示例的唯一区别是我修改为1.5.1。
(defproject org.flatland/protobuf "0.8.2-SNAPSHOT"
:description "Clojure-protobuf provides a clojure interface to Google's protocol buffers."
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:url "https://github.com/flatland/clojure-protobuf"
:dependencies [[org.clojure/clojure "1.5.1"]
[org.flatland/protobuf "0.7.1"]
[org.flatland/useful "0.11.1"]
[org.flatland/schematic "0.1.2"]
[org.flatland/io "0.3.0"]
[ordered-collections "0.4.2"]]
:plugins [[lein-protobuf "0.1.1"]]
:aliases {"testall" ["with-profile" "dev,default:dev,1.3,default:dev,1.5,default" "test"]}
:profiles {:1.3 {:dependencies [[org.clojure/clojure "1.3.0"]]}
:1.5 {:dependencies [[org.clojure/clojure "1.5.0-master-SNAPSHOT"]]}
:dev {:dependencies [[gloss "0.2.2"]]}}
:repositories {"sonatype-snapshots" {:url "http://oss.sonatype.org/content/repositories/snapshots"
:snapshots true
:releases {:checksum :fail :update :always}}}
:checksum-deps true
:java-source-paths ["src"])
然后我做了一个
lein protobuf
现在我进入了REPL
lein repl
我尝试了第一个命令:
(use 'flatland.protobuf.core)
然后我尝试了下一行
(import com.example.Example$Person)
然后示例的其余部分工作正常。
答案 0 :(得分:0)
看来clojusc/protobuf
是维护得更好的分叉。项目自述文件包含一个简单的protobuf示例。它清楚地说明了如何使用protoc
编译器和java
互操作。