You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2017/12/09 15:27:25 UTC
[maven-jdeps-plugin] 13/34: Add
dependenciesToAnalyzeIncludes/excludes
This is an automated email from the ASF dual-hosted git repository.
hboutemy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-jdeps-plugin.git
commit 529de2903deca724d8b03423e0a3a6408d777093
Author: Robert Scholte <rf...@apache.org>
AuthorDate: Thu Feb 19 19:54:08 2015 +0000
Add dependenciesToAnalyzeIncludes/excludes
git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk@1660993 13f79535-47bb-0310-9956-ffa450edef68
---
.../maven/plugin/jdeps/AbstractJDepsMojo.java | 62 ++++++++++++++++++++++
1 file changed, 62 insertions(+)
diff --git a/src/main/java/org/apache/maven/plugin/jdeps/AbstractJDepsMojo.java b/src/main/java/org/apache/maven/plugin/jdeps/AbstractJDepsMojo.java
index 86b1add..bf6aae9 100644
--- a/src/main/java/org/apache/maven/plugin/jdeps/AbstractJDepsMojo.java
+++ b/src/main/java/org/apache/maven/plugin/jdeps/AbstractJDepsMojo.java
@@ -30,6 +30,8 @@ import java.util.Properties;
import java.util.StringTokenizer;
import org.apache.commons.lang.SystemUtils;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.artifact.DependencyResolutionRequiredException;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.AbstractMojo;
@@ -41,6 +43,7 @@ import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
import org.apache.maven.toolchain.Toolchain;
import org.apache.maven.toolchain.ToolchainManager;
+import org.codehaus.plexus.util.MatchPatterns;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.cli.CommandLineException;
import org.codehaus.plexus.util.cli.CommandLineUtils;
@@ -72,6 +75,39 @@ public abstract class AbstractJDepsMojo
private boolean failOnWarning;
/**
+ * Additional dependencies which should be analyzed besides the classes.
+ * Specify as {@code groupId:artifactId}, allowing ant-pattern.
+ *
+ * E.g.
+ * <pre>
+ * <dependenciesToAnalyzeIncludes>
+ * <include>*:*</include>
+ * <include>org.foo.*:*</include>
+ * <include>com.foo.bar:*</include>
+ * <include>dot.foo.bar:utilities</include>
+ * </dependenciesToAnalyzeIncludes>
+ * </pre>
+ */
+ @Parameter
+ private List<String> dependenciesToAnalyzeIncludes;
+
+ /**
+ * Subset of {@link AbstractJDepsMojo#dependenciesToAnalyzeIncludes} which should be not analyzed.
+ * Specify as {@code groupId:artifactId}, allowing ant-pattern.
+ *
+ * E.g.
+ * <pre>
+ * <dependenciesToAnalyzeExcludes>
+ * <exclude>org.foo.*:*</exclude>
+ * <exclude>com.foo.bar:*</exclude>
+ * <exclude>dot.foo.bar:utilities</exclude>
+ * </dependenciesToAnalyzeExcludes>
+ * </pre>
+ */
+ @Parameter
+ private List<String> dependenciesToAnalyzeExcludes;
+
+ /**
* Destination directory for DOT file output
*/
@Parameter( property = "jdeps.dotOutput" )
@@ -282,6 +318,32 @@ public abstract class AbstractJDepsMojo
{
// <classes> can be a pathname to a .class file, a directory, a JAR file, or a fully-qualified class name.
cmd.createArg().setFile( new File( getClassesDirectory() ) );
+
+ if ( dependenciesToAnalyzeIncludes != null )
+ {
+ MatchPatterns includes = MatchPatterns.from( dependenciesToAnalyzeIncludes );
+
+ MatchPatterns excludes;
+ if ( dependenciesToAnalyzeExcludes != null )
+ {
+ excludes = MatchPatterns.from( dependenciesToAnalyzeExcludes );
+ }
+ else
+ {
+ excludes = MatchPatterns.from( Collections.<String>emptyList() );
+ }
+
+ for ( Artifact artifact : project.getArtifacts() )
+ {
+ String versionlessKey = ArtifactUtils.versionlessKey( artifact );
+
+ if ( includes.matchesPatternStart( versionlessKey, true )
+ && !excludes.matchesPatternStart( versionlessKey, true ) )
+ {
+ cmd.createArg().setFile( artifact.getFile() );
+ }
+ }
+ }
}
private String getJDepsExecutable() throws IOException
--
To stop receiving notification emails like this one, please contact
"commits@maven.apache.org" <co...@maven.apache.org>.