提交 fb3f94b4 编写于 作者: K kohsuke

expanded the definition of 'dependency' to match that of Maven.


git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@1970 71c3de6d-444a-0410-be80-ed276b4c234a
上级 a06bcf8d
package hudson.maven;
import org.apache.maven.project.MavenProject;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.Extension;
import org.apache.maven.model.Dependency;
/**
* Version independent name of a Maven project.
*
......@@ -14,6 +19,22 @@ public class ModuleName implements Comparable<ModuleName> {
this.artifactId = artifactId;
}
public ModuleName(MavenProject project) {
this(project.getGroupId(),project.getArtifactId());
}
public ModuleName(Plugin plugin) {
this(plugin.getGroupId(),plugin.getArtifactId());
}
public ModuleName(Extension ext) {
this(ext.getGroupId(),ext.getArtifactId());
}
public ModuleName(Dependency dep) {
this(dep.getGroupId(),dep.getArtifactId());
}
/**
* Returns the "groupId:artifactId" form.
*/
......
......@@ -2,6 +2,8 @@ package hudson.maven;
import org.apache.maven.project.MavenProject;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.Extension;
import java.io.Serializable;
import java.util.Set;
......@@ -39,16 +41,36 @@ final class PomInfo implements Serializable {
/**
* Dependency of this project.
*
* See Maven's ProjectSorter class for the definition of the 'dependencies' in Maven.
*/
public final Set<ModuleName> dependencies = new HashSet<ModuleName>();
public PomInfo(MavenProject project, String relPath) {
this.name = new ModuleName(project.getGroupId(),project.getArtifactId());
this.name = new ModuleName(project);
this.displayName = project.getName();
this.relativePath = relPath;
for (Dependency dep : (List<Dependency>)project.getDependencies())
dependencies.add(new ModuleName(dep.getGroupId(),dep.getArtifactId()));
dependencies.add(new ModuleName(dep));
MavenProject parent = project.getParent();
if(parent!=null)
dependencies.add(new ModuleName(parent));
addPluginsAsDependencies(project.getBuildPlugins(),dependencies);
addPluginsAsDependencies(project.getReportPlugins(),dependencies);
List<Extension> extensions = project.getBuildExtensions();
if(extensions!=null)
for (Extension ext : extensions)
dependencies.add(new ModuleName(ext));
}
private void addPluginsAsDependencies(List<Plugin> plugins, Set<ModuleName> dependencies) {
if(plugins==null) return;
for (Plugin p : plugins)
dependencies.add(new ModuleName(p));
}
private static final long serialVersionUID = 1L;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册