001 /* 002 * Licensed to the Apache Software Foundation (ASF) under one 003 * or more contributor license agreements. See the NOTICE file 004 * distributed with this work for additional information 005 * regarding copyright ownership. The ASF licenses this file 006 * to you under the Apache License, Version 2.0 (the 007 * "License"); you may not use this file except in compliance 008 * with the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, 013 * software distributed under the License is distributed on an 014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 015 * KIND, either express or implied. See the License for the 016 * specific language governing permissions and limitations 017 * under the License. 018 */ 019 020 package org.apache.geronimo.genesis.plugins.tools; 021 022 import java.util.Iterator; 023 024 import org.apache.maven.artifact.Artifact; 025 import org.apache.maven.artifact.repository.ArtifactRepository; 026 import org.apache.maven.project.MavenProject; 027 import org.apache.maven.plugin.MojoExecutionException; 028 import org.apache.maven.plugin.MojoFailureException; 029 030 import org.apache.geronimo.genesis.dependency.DependencyHelper; 031 import org.apache.geronimo.genesis.dependency.DependencyTree; 032 import org.apache.geronimo.genesis.dependency.DependencyTree.Node; 033 import org.apache.geronimo.genesis.MojoSupport; 034 035 /** 036 * Helper to show a projects dependencies. 037 * 038 * @goal show-dependencies 039 * 040 * @version $Rev: 454267 $ $Date: 2006-10-08 20:20:28 -0700 (Sun, 08 Oct 2006) $ 041 */ 042 public class ShowDependenciesMojo 043 extends MojoSupport 044 { 045 /** 046 * Enable verbose details (version and scope). 047 * 048 * @parameter expression="${verbose}" 049 */ 050 private boolean verbose = false; 051 052 /** 053 * @component 054 */ 055 private DependencyHelper helper = null; 056 057 /** 058 * @parameter expression="${project}" 059 * @required 060 * @readonly 061 */ 062 protected MavenProject project; 063 064 /** 065 * @parameter expression="${localRepository}" 066 * @required 067 * @readonly 068 */ 069 protected ArtifactRepository repository; 070 071 protected void init() throws MojoExecutionException, MojoFailureException { 072 super.init(); 073 074 helper.setArtifactRepository(repository); 075 } 076 077 protected void doExecute() throws Exception { 078 DependencyTree dependencies = helper.getDependencies(project); 079 printDependencyListing(dependencies.getRootNode(), ""); 080 } 081 082 private void printDependencyListing(final Node node, final String pad) { 083 Artifact artifact = node.getArtifact(); 084 String id = artifact.getDependencyConflictId(); 085 086 StringBuffer buff = new StringBuffer(id); 087 if (verbose) { 088 buff.append(" "); 089 buff.append("{ version=").append(artifact.getVersion()); 090 buff.append(", scope=").append(artifact.getScope()); 091 buff.append(" }"); 092 } 093 log.info(pad + buff); 094 095 if (!node.getChildren().isEmpty()) { 096 Iterator children = node.getChildren().iterator(); 097 098 while (children.hasNext()) { 099 Node child = (Node) children.next(); 100 printDependencyListing(child, pad + " "); 101 } 102 } 103 } 104 }