/puppet-maven

A puppet recipe for Apache Maven, to download artifacts from a Maven repository

Primary LanguageRuby

# Copyright 2011 MaestroDev
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


Carlos Sanchez <csanchez@maestrodev.com>
http://www.maestrodev.com
2010-03-01

A puppet recipe for Apache Maven, to download artifacts from a Maven repository

It uses Apache Maven command line to download the artifacts.


=== Buildr version ===

There is also an Apache Buildr version, but it requires to have Buildr installed before running Puppet

And you would need to enable pluginsync in both master and clients
http://docs.puppetlabs.com/guides/plugins_in_modules.html#enabling-pluginsync

Usage

maven { "/tmp/myfile":
  id => "groupId:artifactId:version:packaging:classifier",
  repos => ["id::layout::http://repo.acme.com","http://repo2.acme.com"],
}

or

maven { "/tmp/myfile":
  groupid => "org.apache.maven",
  artifactid => "maven-core",
  version => "2.2.1",
  packaging => "jar",
  classifier => "sources",
  repos => ["id::layout::http://repo.acme.com","http://repo2.acme.com"],
}


Examples

# =============== Begin setup ===============

$repo1 = {
  id => "myrepo",
  username => "myuser",
  password => "mypassword",
  url => "http://repo.acme.com",
}

# Install Maven
class { "maven::maven":
  version => "2.2.1",
} ->
# Create a settings.xml with the repo creedentials
class { "maven::settings" :
  servers => [$repo1],
}

# =============== End setup ===============


maven { "/tmp/maven-core-2.2.1.jar":
  id => "org.apache.maven:maven-core:2.2.1:jar",
  repos => ["central::default::http://repo1.maven.apache.org/maven2","http://mirrors.ibiblio.org/pub/mirrors/maven2"],
}
maven { "/tmp/maven-core-2.2.1-sources.jar":
  groupid => "org.apache.maven",
  artifactid => "maven-core",
  version => "2.2.1",
  classifier => "sources",
}