ninjudd / lein-protobuf Goto Github PK
View Code? Open in Web Editor NEWLeiningen plugin for compiling google protocol buffers.
License: Eclipse Public License 1.0
Leiningen plugin for compiling google protocol buffers.
License: Eclipse Public License 1.0
It seems like the latest release is broken. 0.2-beta3 works fine, but on beta4 leiningen complains about an undefined symbol on line 41 of protobuf.clj.
The readme says :proto-path should be '/path/to/proto'. I thought it meant a specific file rather than a directory containing .proto files.
Oddly, the result was a StackOverflowError.
It would be good if this library handled non-zero exit codes when running configure. Also, it would be good if you streamed STDERR to STDOUT as well, as any errors that are printed during configure aren't printed. https://github.com/ninjudd/lein-protobuf/blob/develop/src/leiningen/protobuf.clj#L107
I'm wanting to remove the dependency on org.flatland/protobuf in https://github.com/apa512/rethinkdb-protobuf, but I'm not quite sure how to compile and deploy a JAR to Clojars. Compilation fails when protobuf is in the dev dependencies.
Relates to: apa512/rethinkdb-protobuf#4
lein-protobuf itself works fine, and simply commenting [lein-protobuf "0.3.1"]
out restores the correct behaviour of other plugins.
Might be related to leinjacker
version lein-protobuf depends on: weavejester/lein-ring#61
Full error:
Exception in thread "main" java.lang.AssertionError: Assert failed: (vector? (:dependencies project []))
at leinjacker.deps$add_if_missing.invoke(deps.clj:43)
at leiningen.doc$doc.invoke(doc.clj:16)
at clojure.lang.Var.invoke(Var.java:415)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.Var.applyTo(Var.java:532)
at clojure.core$apply.invoke(core.clj:619)
at leiningen.core.main$resolve_task$fn__2160.doInvoke(main.clj:148)
at clojure.lang.RestFn.invoke(RestFn.java:410)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.RestFn.applyTo(RestFn.java:132)
at clojure.lang.AFunction$1.doInvoke(AFunction.java:29)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:619)
at leiningen.core.main$apply_task.invoke(main.clj:188)
at leiningen.core.main$resolve_and_apply.invoke(main.clj:192)
at leiningen.core.main$_main$fn__2223.invoke(main.clj:256)
at leiningen.core.main$_main.doInvoke(main.clj:246)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.lang.Var.invoke(Var.java:415)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.Var.applyTo(Var.java:532)
at clojure.core$apply.invoke(core.clj:617)
at clojure.main$main_opt.invoke(main.clj:335)
at clojure.main$main.doInvoke(main.clj:440)
at clojure.lang.RestFn.invoke(RestFn.java:436)
at clojure.lang.Var.invoke(Var.java:423)
at clojure.lang.AFn.applyToHelper(AFn.java:167)
at clojure.lang.Var.applyTo(Var.java:532)
at clojure.main.main(main.java:37)
There's no apparent open source license on this project, so terms of use (and extension and etc) are a bit unclear at the moment. Is this project meant to be licensed under the EPL like e.g. clojure-protobuf?
I have a file in my project which defines a protobuf like so:
(def Person (protodef Example$Person))
When I run lein protobuf
I get an exception telling me Example$Person
does not exist
It seems lein is trying to compile my file before compiling the protobuf file
Any idea?
Using version 0.5.0, when I try lein run
without setting :protoc
in project.clj I get the following exception:
> lein run
java.lang.NullPointerException: null
at clojure.lang.Reflector.invokeNoArgInstanceMember (Reflector.java:301)
leiningen.protobuf$build_protoc.invokeStatic (protobuf.clj:102)
leiningen.protobuf$build_protoc.invoke (protobuf.clj:97)
leiningen.protobuf$protobuf.invokeStatic (protobuf.clj:168)
leiningen.protobuf$protobuf.doInvoke (protobuf.clj:161)
clojure.lang.RestFn.invoke (RestFn.java:410)
lein_protobuf.plugin$hooks$fn__1291.doInvoke (plugin.clj:10)
clojure.lang.RestFn.applyTo (RestFn.java:139)
clojure.core$apply.invokeStatic (core.clj:648)
clojure.core$apply.invoke (core.clj:641)
robert.hooke$compose_hooks$fn__11923.doInvoke (hooke.clj:40)
clojure.lang.RestFn.applyTo (RestFn.java:137)
clojure.core$apply.invokeStatic (core.clj:646)
clojure.core$apply.invoke (core.clj:641)
robert.hooke$run_hooks.invokeStatic (hooke.clj:46)
robert.hooke$run_hooks.invoke (hooke.clj:45)
robert.hooke$prepare_for_hooks$fn__11928$fn__11929.doInvoke (hooke.clj:54)
clojure.lang.RestFn.applyTo (RestFn.java:137)
clojure.lang.AFunction$1.doInvoke (AFunction.java:29)
clojure.lang.RestFn.invoke (RestFn.java:408)
clojure.lang.Var.invoke (Var.java:379)
clojure.lang.AFn.applyToHelper (AFn.java:154)
clojure.lang.Var.applyTo (Var.java:700)
clojure.core$apply.invokeStatic (core.clj:648)
clojure.core$apply.invoke (core.clj:641)
leiningen.core.main$partial_task$fn__5829.doInvoke (main.clj:272)
clojure.lang.RestFn.invoke (RestFn.java:410)
clojure.lang.AFn.applyToHelper (AFn.java:154)
clojure.lang.RestFn.applyTo (RestFn.java:132)
clojure.lang.AFunction$1.doInvoke (AFunction.java:29)
clojure.lang.RestFn.applyTo (RestFn.java:137)
clojure.core$apply.invokeStatic (core.clj:648)
clojure.core$apply.invoke (core.clj:641)
leiningen.core.main$apply_task.invokeStatic (main.clj:322)
leiningen.core.main$apply_task.invoke (main.clj:308)
leiningen.core.eval$run_prep_tasks.invokeStatic (eval.clj:50)
leiningen.core.eval$run_prep_tasks.invoke (eval.clj:42)
leiningen.core.eval$prep.invokeStatic (eval.clj:85)
leiningen.core.eval$prep.invoke (eval.clj:72)
leiningen.core.eval$eval_in_project.invokeStatic (eval.clj:369)
leiningen.core.eval$eval_in_project.invoke (eval.clj:363)
leiningen.core.eval$eval_in_project.invokeStatic (eval.clj:367)
leiningen.core.eval$eval_in_project.invoke (eval.clj:363)
leiningen.run$run_main.invokeStatic (run.clj:128)
leiningen.run$run_main.invoke (run.clj:123)
leiningen.run$run.invokeStatic (run.clj:155)
leiningen.run$run.doInvoke (run.clj:132)
clojure.lang.RestFn.invoke (RestFn.java:410)
clojure.lang.Var.invoke (Var.java:379)
clojure.lang.AFn.applyToHelper (AFn.java:154)
clojure.lang.Var.applyTo (Var.java:700)
clojure.core$apply.invokeStatic (core.clj:648)
clojure.core$apply.invoke (core.clj:641)
leiningen.core.main$partial_task$fn__5829.doInvoke (main.clj:272)
clojure.lang.RestFn.invoke (RestFn.java:410)
clojure.lang.AFn.applyToHelper (AFn.java:154)
clojure.lang.RestFn.applyTo (RestFn.java:132)
clojure.lang.AFunction$1.doInvoke (AFunction.java:29)
clojure.lang.RestFn.applyTo (RestFn.java:137)
clojure.core$apply.invokeStatic (core.clj:648)
clojure.core$apply.invoke (core.clj:641)
leiningen.core.main$apply_task.invokeStatic (main.clj:322)
leiningen.core.main$apply_task.invoke (main.clj:308)
leiningen.core.main$resolve_and_apply.invokeStatic (main.clj:328)
leiningen.core.main$resolve_and_apply.invoke (main.clj:324)
leiningen.core.main$_main$fn__5895.invoke (main.clj:401)
leiningen.core.main$_main.invokeStatic (main.clj:394)
leiningen.core.main$_main.doInvoke (main.clj:391)
clojure.lang.RestFn.invoke (RestFn.java:408)
clojure.lang.Var.invoke (Var.java:379)
clojure.lang.AFn.applyToHelper (AFn.java:154)
clojure.lang.Var.applyTo (Var.java:700)
clojure.core$apply.invokeStatic (core.clj:646)
clojure.main$main_opt.invokeStatic (main.clj:314)
clojure.main$main_opt.invoke (main.clj:310)
clojure.main$main.invokeStatic (main.clj:421)
clojure.main$main.doInvoke (main.clj:384)
clojure.lang.RestFn.invoke (RestFn.java:436)
clojure.lang.Var.invoke (Var.java:388)
clojure.lang.AFn.applyToHelper (AFn.java:160)
clojure.lang.Var.applyTo (Var.java:700)
clojure.main.main (main.java:37)
When running lein protobuf
with .proto files in the default directory (resources/proto), after protoc has successfully completed, the java compiler step fails with errors such as:
error: cannot find symbol
com.google.protobuf.ProtocolStringList
^
symbol: class ProtocolStringList
location: package com.google.protobuf
For this issue, everything was at the latest versions
:plugins [[lein-protobuf "0.4.3"]
:dependencies [[org.clojure/clojure "1.7.0"][org.flatland/protobuf "0.8.1"]]
Google Code is shutting down, wompwomp
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.