Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error running jbundle install: Errno::ENOENT: No such file or directory - pkg/dependencies.txt #75

Open
jeremyhaile opened this issue May 23, 2016 · 15 comments

Comments

@jeremyhaile
Copy link

We are running into this error every time we run jbundle install using jbundler 0.9.3

Not sure why it started happening or where to begin fixing this. We also tried version 0.9.2 and it also happens. Here is the error and debug output:

bundle exec jbundle install --debug ... mvn dependency:list -f /Users/<user>/.rvm/gems/jruby-9.0.1.0@project/gems/jbundler-0.9.3/lib/jbundler/dependency_pom.rb -Dverbose=true -X -DexcludeTransitive=false -Djbundler.outputFile=/Users/<user>/projects/project/pkg/dependencies.txt -Djbundler.basedir=/Users/<user>/projects/project -Djbundler.jarfile=/Users/<user>/projects/project/Jarfile -Djbundler.gemfile=/Users/<user>/projects/project/Gemfile -Djbundler.workdir=/Users/<user>/projects/project/pkg -Djbundler.groups -Djbundler.bootstrap -Dmaven.repo.local=/Users/<user>/.m2/repository mvn dependency:list -f /Users/<user>/.rvm/gems/jruby-9.0.1.0@project/gems/jbundler-0.9.3/lib/jbundler/dependency_pom.rb -Dverbose=true -X -DexcludeTransitive=false -Djbundler.outputFile=/Users/<user>/projects/project/pkg/dependencies.txt -Djbundler.basedir=/Users/<user>/projects/project -Djbundler.jarfile=/Users/<user>/projects/project/Jarfile -Djbundler.gemfile=/Users/<user>/projects/project/Gemfile -Djbundler.workdir=/Users/<user>/projects/project/pkg -Djbundler.groups -Djbundler.bootstrap -Dmaven.repo.local=/Users/<user>/.m2/repository Errno::ENOENT: No such file or directory - /Users/<user>/projects/project/pkg/dependencies.txt read at org/jruby/RubyIO.java:3592 install_dependencies at /Users/<user>/.rvm/gems/jruby-9.0.1.0@project/gems/jbundler-0.9.3/lib/jbundler/lock_down.rb:113 lock_down at /Users/<user>/.rvm/gems/jruby-9.0.1.0@project/gems/jbundler-0.9.3/lib/jbundler/lock_down.rb:54 install at /Users/<user>/.rvm/gems/jruby-9.0.1.0@project/gems/jbundler-0.9.3/lib/jbundler/cli.rb:80 run at /Users/<user>/.rvm/gems/jruby-9.0.1.0@global/gems/bundler-1.11.2/lib/bundler/vendor/thor/lib/thor/command.rb:27 invoke_command at /Users/<user>/.rvm/gems/jruby-9.0.1.0@global/gems/bundler-1.11.2/lib/bundler/vendor/thor/lib/thor/invocation.rb:126 dispatch at /Users/<user>/.rvm/gems/jruby-9.0.1.0@global/gems/bundler-1.11.2/lib/bundler/vendor/thor/lib/thor.rb:359 start at /Users/<user>/.rvm/gems/jruby-9.0.1.0@global/gems/bundler-1.11.2/lib/bundler/vendor/thor/lib/thor/base.rb:440 <top> at /Users/<user>/.rvm/gems/jruby-9.0.1.0@project/gems/jbundler-0.9.3/bin/jbundle:47 load at org/jruby/RubyKernel.java:957 <top> at /Users/<user>/.rvm/gems/jruby-9.0.1.0@project/bin/jbundle:1

Here is our Jarfile:

repository :typesafe, "http://repo.typesafe.com/typesafe/releases/"

jar 'org.scala-lang:scala-library', '2.10.4'
jar 'com.typesafe.akka:akka-actor_2.10', '2.3.6'
jar 'com.typesafe.akka:akka-remote_2.10', '2.3.6'
jar 'com.typesafe.akka:akka-slf4j_2.10', '2.3.6'

jar 'org.apache.opennlp:opennlp-tools', '1.5.3'
jar 'org.apache.opennlp:opennlp-maxent', '3.0.3'

jar 'com.github.rholder:snowball-stemmer', '1.3.0.581.1'

jar 'com.ning:async-http-client', '1.9.34'
jar 'io.netty:netty', '3.10.5.Final'

jar 'ch.qos.logback:logback-classic', '1.1.2'
@mkristian
Copy link
Owner

hmm, does not look like maven gets executed at all - at least I do not see the expected maven debug log.

could you try to execute

lock_jars
which does also lock down the Jarfile and jbundler is using it under the hood.

will make some time for it tomorrow.

@jeremyhaile
Copy link
Author

@mkristian sorry for the double filing of this issue. Github was acting up this morning and wasn't showing that it had created successfully. I'll close the duplicate issue.

@mkristian
Copy link
Owner

thanks, I do fight with no responsive pages as well from time to time, vpn has hickups or github or system starts swapping . . . :)

@jeremyhaile
Copy link
Author

@mkristian BTW - it doesn't look like the command you wanted me to run pasted correctly. Please see your previous comment.

@mkristian
Copy link
Owner

lock_jars

@mkristian
Copy link
Owner

and the last one was empty again :(
bummer. it was
lock_jars

@xxx
Copy link

xxx commented Aug 1, 2016

Same problem here.

What is lock_jars from?

edit: to answer my own question, it's from the jar-dependencies gem, though wasn't runnable via bundle exec for me.

@mkristian
Copy link
Owner

@xxx jar-dependencies is default gem maybe jruby is still doing something wrong with its default gems and their executables. just add jar-dependencies to your bundle and bundler should be able to execute its executables.

@lampad
Copy link

lampad commented Aug 12, 2016

Had a similar problem, but after running lock_jars (after setting up the bundle) ended up getting:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0
Which pointed me to this

My env was using java6, once I flipped it over to java 8:

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

on Mac OS X El Capitan (assuming you have java 8 installed as well) I was able to jbundle install successfully. Not sure if this will solve your issue, but figured I'd throw it out there.

@punit-kulal
Copy link

We are facing this issue, and do not have any resolution for it. We haven't changed any dependencies in our project and this error popped all of a sudden. The debug logs also do not show any other logs other than the error. @mkristian

@punit-kulal
Copy link

This issue was caused by a recent update to ruby-maven 3.3.13

@mkristian
Copy link
Owner

@punit-kulal any chance you could provide a small sample project where I can reproduce the error, that would be very helpful. missing pkg/dependencies.txt that the maven run failed.

@expeehaa
Copy link

expeehaa commented Jul 6, 2022

I had the same issue and the downgrade of ruby-maven to 3.3.12 fixed it for me.
I’ve created a small Dockerfile to reproduce it.

FROM jruby:9.3.6.0
WORKDIR /test
RUN gem install ruby-maven -v 3.3.12 # Comment this line out to make it fail.
RUN gem install jbundler
RUN echo "jar 'org.yaml:snakeyaml', '1.14'" > Jarfile
RUN jbundle

As it is, the dockerfile will succeed, however when commenting out the line that installs a non-3.3.13 version of ruby-maven, it will fail with the following error:

Errno::ENOENT: No such file or directory - /test/pkg/dependencies.txt
               sysopen at org/jruby/RubyIO.java:1227
                  read at org/jruby/RubyIO.java:3986
  install_dependencies at /usr/local/bundle/gems/jbundler-0.9.4/lib/jbundler/lock_down.rb:113
             lock_down at /usr/local/bundle/gems/jbundler-0.9.4/lib/jbundler/lock_down.rb:54
               install at /usr/local/bundle/gems/jbundler-0.9.4/lib/jbundler/cli.rb:80
                   run at /opt/jruby/lib/ruby/gems/shared/gems/bundler-2.3.17/lib/bundler/vendor/thor/lib/thor/command.rb:27
        invoke_command at /opt/jruby/lib/ruby/gems/shared/gems/bundler-2.3.17/lib/bundler/vendor/thor/lib/thor/invocation.rb:127
              dispatch at /opt/jruby/lib/ruby/gems/shared/gems/bundler-2.3.17/lib/bundler/vendor/thor/lib/thor.rb:392
                 start at /opt/jruby/lib/ruby/gems/shared/gems/bundler-2.3.17/lib/bundler/vendor/thor/lib/thor/base.rb:485
                <main> at /usr/local/bundle/gems/jbundler-0.9.4/bin/jbundle:47
                  load at org/jruby/RubyKernel.java:1052
                <main> at /usr/local/bundle/bin/jbundle:25

Even though this clearly makes ruby-maven responsible for the issue, jbundler does not seem to have proper error handling for it. I’m new to jbundler, so for the sake of a minimal reproducable example I tried omitting the version info from the Jarfile (i.e. just jar 'org.yaml:snakeyaml'), and got a proper error, but also the same error as above:

[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: org.yaml:snakeyaml:jar -> version 1.28 vs (?) @ 
[ERROR] 'dependencies.dependency.version' for org.yaml:snakeyaml:jar is missing. @ 
 @ 
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR]   The project no_group_id_given:jbundler:0.0.0 (/usr/local/bundle/gems/jbundler-0.9.4/lib/jbundler/dependency_pom.rb) has 1 error
[ERROR]     'dependencies.dependency.version' for org.yaml:snakeyaml:jar is missing.
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
Errno::ENOENT: No such file or directory - /test/pkg/dependencies.txt
               sysopen at org/jruby/RubyIO.java:1227
...

@mkristian
Copy link
Owner

thanks this was very helpful, I 'found the regression happens between io.takari.polyglot:polyglot-ruby:0.4.4 and io.takari.polyglot:polyglot-ruby:0.4.5

@pcarlisle
Copy link

pcarlisle commented Oct 19, 2022

I ran into this today as well. The recent version of this problem seems to be down to this change takari/polyglot-maven#221

In https://github.com/takari/polyglot-maven/blob/polyglot-0.4.9/polyglot-common/src/main/java/org/sonatype/maven/polyglot/TeslaModelProcessor.java#L161-L172 when maven is executed with the argument of lib/jbundler/dependency_pom.rb, this doesn't match the default pom names it instead searches the parent directory for a pom and settles on lib/jbundler/pom.rb. The easiest fix for me seemed to be to isolate dependency_pom.rb in its own directory.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants