I'm attempting to build a jar that will work with AWS Lambda (for kicks). In theory, Maven should pull all the gems via the Torquebox proxy and compile a jar file for me. However, for some reason it's failing on a gem dependency issue -- it seems to be pulling an old version of the Twitter gem's depencency http
.
(I've never done work with jruby before, so I'm learning as I go.)
The repo is here: https://github.com/arsduo/markovian-lambda/tree/lambda-jar
pom.xml: https://github.com/arsduo/markovian-lambda/blob/lambda-jar/pom.xml
Here's the end result of mvn package
:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:36 min
[INFO] Finished at: 2015-09-14T19:14:57-05:00
[INFO] Final Memory: 9M/139M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project lambda: Could not resolve dependencies for project markovian:lambda:jar:0.1.0: Failed to collect dependencies at rubygems:twitter:gem:5.15.0 -> rubygems:http:gem:0.7.0 -> rubygems:form_data:gem:[0.0.1,0.0.99999]: No versions available for rubygems:form_data:gem:[0.0.1,0.0.99999] within specified range -> [Help 1]
Relevant Rubygems.org info:
- Twitter 5.15.0 depends on http
< 0.10, >= 0.4
- http is currently on 0.9.6 (which fulfills Twitter's criteria), but Maven seems to pull 0.7.0 (https://rubygems.org/gems/http/versions/0.7.0), which depends on a no-longer-available gem called form_data
Instructions I followed:
- Torquebox instructions: http://rubygems-proxy.torquebox.org/
- Using jruby w/ AWS Lambda: http://miguel.cc/blog/entry/write_aws_lambda_functions_in_ruby/