mirror of https://github.com/apache/activemq.git
Adding a little mojo that will allow us to create a repo for activemq dependencies.
git-svn-id: https://svn.apache.org/repos/asf/incubator/activemq/trunk@413960 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
8ce74fa439
commit
97f311f898
|
@ -0,0 +1,19 @@
|
|||
<classpath>
|
||||
<classpathentry kind="src" path="src/main/java"/>
|
||||
<classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-project/2.0/maven-project-2.0.jar"/>
|
||||
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-profile/2.0/maven-profile-2.0.jar"/>
|
||||
<classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.jar"/>
|
||||
<classpathentry kind="var" path="M2_REPO/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5.jar"/>
|
||||
<classpathentry kind="var" path="M2_REPO/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar"/>
|
||||
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.jar"/>
|
||||
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.jar"/>
|
||||
<classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-archiver/1.0-alpha-3/plexus-archiver-1.0-alpha-3.jar"/>
|
||||
<classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar"/>
|
||||
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.jar"/>
|
||||
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-model/2.0/maven-model-2.0.jar"/>
|
||||
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.jar"/>
|
||||
<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
|
||||
</classpath>
|
|
@ -0,0 +1,18 @@
|
|||
<projectDescription>
|
||||
<name>maven-dependency-plugin</name>
|
||||
<comment>The Apache Software Foundation provides support for the Apache community of open-source software projects.
|
||||
The Apache projects are characterized by a collaborative, consensus based development process, an open and
|
||||
pragmatic software license, and a desire to create high quality software that leads the way in its field.
|
||||
We consider ourselves not simply a group of projects sharing a server, but rather a community of developers
|
||||
and users.</comment>
|
||||
<projects/>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments/>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -0,0 +1,5 @@
|
|||
#Tue Jun 13 01:49:56 EDT 2006
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.source=1.4
|
||||
org.eclipse.jdt.core.compiler.compliance=1.4
|
|
@ -0,0 +1,45 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>incubator-activemq</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<packaging>maven-plugin</packaging>
|
||||
<name>ActiveMQ :: Dependency Plugin</name>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-plugin-api</artifactId>
|
||||
<version>2.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<scope>test</scope>
|
||||
<version>3.8.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.codehaus.plexus</groupId>
|
||||
<artifactId>plexus-archiver</artifactId>
|
||||
<version>1.0-alpha-3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-plugin-api</artifactId>
|
||||
<version>2.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-artifact</artifactId>
|
||||
<version>2.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-project</artifactId>
|
||||
<version>2.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
|
@ -0,0 +1,151 @@
|
|||
/**
|
||||
*
|
||||
* Copyright 2005-2006 The Apache Software Foundation
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
package org.apache.activemq.maven;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.deployer.ArtifactDeployer;
|
||||
import org.apache.maven.artifact.deployer.ArtifactDeploymentException;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.repository.DefaultArtifactRepository;
|
||||
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
|
||||
import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
|
||||
import org.apache.maven.plugin.AbstractMojo;
|
||||
import org.apache.maven.plugin.MojoExecutionException;
|
||||
import org.apache.maven.project.MavenProject;
|
||||
|
||||
/**
|
||||
* This is a useful little mojo that allows you to copy all the transitive
|
||||
* dependencies to a specified deployment repository. Great if you want to create
|
||||
* a new repo for your project's dependencies.
|
||||
*
|
||||
* @goal deploy-dependencies
|
||||
* @requiresDependencyResolution compile
|
||||
* @phase process-sources
|
||||
*/
|
||||
public class DeployDependenciesMojo extends AbstractMojo {
|
||||
|
||||
/**
|
||||
* @parameter expression="${project}"
|
||||
* @readonly
|
||||
* @required
|
||||
*/
|
||||
private MavenProject project;
|
||||
|
||||
/**
|
||||
* @parameter expression="${reactorProjects}"
|
||||
* @required
|
||||
* @readonly
|
||||
*/
|
||||
private List reactorProjects;
|
||||
|
||||
/**
|
||||
* @parameter expression="${component.org.apache.maven.artifact.deployer.ArtifactDeployer}"
|
||||
* @required
|
||||
* @readonly
|
||||
*/
|
||||
private ArtifactDeployer deployer;
|
||||
|
||||
/**
|
||||
* @parameter expression="${localRepository}"
|
||||
* @required
|
||||
* @readonly
|
||||
*/
|
||||
private ArtifactRepository localRepository;
|
||||
|
||||
/**
|
||||
* @parameter
|
||||
*/
|
||||
private ArtifactRepository deploymentRepository;
|
||||
|
||||
/**
|
||||
* @parameter
|
||||
*/
|
||||
private String deploymentRepositoryId;
|
||||
|
||||
/**
|
||||
* @parameter
|
||||
*/
|
||||
private String deploymentRepositoryUrl;
|
||||
|
||||
/**
|
||||
* @parameter
|
||||
*/
|
||||
private ArtifactRepositoryLayout deploymentRepositoryLayout = new DefaultRepositoryLayout();
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public void execute() throws MojoExecutionException {
|
||||
|
||||
if ( deploymentRepository == null )
|
||||
{
|
||||
deploymentRepository = new DefaultArtifactRepository(deploymentRepositoryId, deploymentRepositoryUrl, deploymentRepositoryLayout);
|
||||
}
|
||||
|
||||
|
||||
getLog().info("repo type="+deploymentRepository.getClass());
|
||||
|
||||
String protocol = deploymentRepository.getProtocol();
|
||||
|
||||
if( protocol.equals( "scp" ) )
|
||||
{
|
||||
File sshFile = new File( System.getProperty( "user.home" ), ".ssh" );
|
||||
|
||||
if( !sshFile.exists() )
|
||||
{
|
||||
sshFile.mkdirs();
|
||||
}
|
||||
}
|
||||
|
||||
Set dependencies = new HashSet();
|
||||
|
||||
for (Iterator i = reactorProjects.iterator(); i.hasNext();) {
|
||||
MavenProject p = (MavenProject) i.next();
|
||||
List dependencyArtifacts = p.getTestArtifacts();
|
||||
|
||||
if( dependencyArtifacts !=null )
|
||||
dependencies.addAll(dependencyArtifacts);
|
||||
}
|
||||
|
||||
for (Iterator iter = dependencies.iterator(); iter.hasNext();) {
|
||||
Artifact artifact = (Artifact) iter.next();
|
||||
deploy( artifact );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void deploy(Artifact artifact) throws MojoExecutionException {
|
||||
try
|
||||
{
|
||||
getLog().info( "Copying " + artifact.getFile().getAbsolutePath() + " to " + deploymentRepository );
|
||||
deployer.deploy( artifact.getFile(), artifact, deploymentRepository, localRepository );
|
||||
}
|
||||
catch ( ArtifactDeploymentException e )
|
||||
{
|
||||
throw new MojoExecutionException( e.getMessage(), e );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue