0.0
No commit activity in last 3 years
No release in over 3 years
Resolves Aether artifact dependencies, downloads, and requires them.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

 Project Readme

MiniAether

JRuby wrapper around some parts of Aether, the library underlying the Maven build and dependency management tool.

  • Bootstraps itself by downloading Aether components directly from the Maven Central repository.
  • Installs JARs into the standard Maven location ~/.m2/repository.
  • Loads Aether libs in separate JRuby with own classloader to avoid contaminating the primary classloader.

I feel that JRuby/maven/rubygems integration is lacking in many areas. There are various attempts to improve this. See JBundler and LockJar for example. So I'm not sure what role MiniAether will play, if any.

require 'mini_aether'

MiniAether.setup do
  group 'org.sonatype.aether' do
    version '1.13.1' do
      jar 'aether-api'
      jar 'aether-impl'
    end
  end

  jar 'com.ning:async-http-client:1.6.5'

  # alternate syntax
  dep(:group_id => 'org.slf4j',
      :artifact_id => 'slf4j-api',
      :version => '1.6.2',
      :extension => 'jar')  # 'jar' is the default if none is given

  group 'org.codehaus.plexus' do
    jar 'plexus-utils:2.0.6'
  end
end

At this point, all those jars and their dependencies will be loaded into the current JRuby.

Convenience require_aether

An experimental convenience method, possibly best used in an irb session:

> require 'mini_aether/require'
> require_aether 'org.slf4j:slf4j-api:1.7.2'
> require_aether 'com.example:artifact:1.0', :source => 'http://maven.example.com/'

Tests

rake test

Note: the unit tests download artifacts from the Maven central repository into temp files and into ~/.m2/repository.