public void execute()

in src/main/java/org/apache/maven/plugins/jdeps/AbstractJDepsMojo.java [215:272]


    public void execute()
        throws MojoExecutionException, MojoFailureException
    {
        if ( !new File( getClassesDirectory() ).exists() )
        {
            getLog().debug( "No classes to analyze" );
            return;
        }

        String jExecutable;
        try
        {
            jExecutable = getJDepsExecutable();
        }
        catch ( IOException e )
        {
            throw new MojoFailureException( "Unable to find jdeps command: " + e.getMessage(), e );
        }

//      Synopsis
//      jdeps [options] classes ...
        Commandline cmd = new Commandline();
        cmd.setExecutable( jExecutable );

        Set<Path> dependenciesToAnalyze = null;
        try
        {
            dependenciesToAnalyze = getDependenciesToAnalyze( includeClasspath );
        }
        catch ( DependencyResolutionRequiredException e )
        {
            throw new MojoExecutionException( e.getMessage(), e );
        }
        addJDepsOptions( cmd, dependenciesToAnalyze );
        addJDepsClasses( cmd, dependenciesToAnalyze );
        
        JDepsConsumer consumer = new JDepsConsumer();
        executeJDepsCommandLine( cmd, outputDirectory, consumer );
        
        // @ TODO if there will be more goals, this should be pushed down to AbstractJDKInternals
        if ( consumer.getOffendingPackages().size() > 0 )
        {
            final String ls = System.getProperty( "line.separator" );
            
            StringBuilder msg = new StringBuilder();
            msg.append( "Found offending packages:" ).append( ls );
            for ( Map.Entry<String, String> offendingPackage : consumer.getOffendingPackages().entrySet() )
            {
                msg.append( ' ' ).append( offendingPackage.getKey() )
                   .append( " -> " ).append( offendingPackage.getValue() ).append( ls );
            }
            
            if ( isFailOnWarning() )
            {
                throw new MojoExecutionException( msg.toString() );
            }
        }
    }