输出Group Id:反应器中的工件Id,而不仅仅是工件Id



当我运行maven命令如"mvn install"或"mvn validate"时,maven将输出它所构建的所有项目的工件id。我想在脚本中使用此输出,然后调用类似于以下命令的命令:

mvn clean install -pl <comma separated list of groupId:artifactId>

不幸的是,我还没能找到如何让maven输出组Id以及工件Id。到目前为止,我已经梳理了maven反应器和依赖项插件,但还没有找到任何结果。有什么办法可以做到吗?

编辑:原来你可以使用只是工件Id,如果你把一个冒号在它前面。如

mvn clean install -pl :fooProject,:barProject

maven默认情况下不支持这个,很难修复它将输出项目名称

这里是相关的来源

private void logReactorSummary( MavenSession session )
{
    logger.info( chars( '-', LINE_LENGTH ) );
    logger.info( "Reactor Summary:" );
    logger.info( "" );
    MavenExecutionResult result = session.getResult();
    for ( MavenProject project : session.getProjects() )
    {
        StringBuilder buffer = new StringBuilder( 128 );
        buffer.append( project.getName() );
        buffer.append( ' ' );
        if ( buffer.length() <= MAX_PROJECT_NAME_LENGTH )
        {
            while ( buffer.length() < MAX_PROJECT_NAME_LENGTH )
            {
                buffer.append( '.' );
            }
            buffer.append( ' ' );
        }
        BuildSummary buildSummary = result.getBuildSummary( project );
        if ( buildSummary == null )
        {
            buffer.append( "SKIPPED" );
        }
        else if ( buildSummary instanceof BuildSuccess )
        {
            buffer.append( "SUCCESS [" );
            String buildTimeDuration = formatDuration( buildSummary.getTime() );
            int padSize = MAX_PADDED_BUILD_TIME_DURATION_LENGTH - buildTimeDuration.length();
            if ( padSize > 0 )
            {
                buffer.append( chars( ' ', padSize ) );
            }
            buffer.append( buildTimeDuration );
            buffer.append( "]" );
        }
        else if ( buildSummary instanceof BuildFailure )
        {
            buffer.append( "FAILURE [" );
            String buildTimeDuration = formatDuration( buildSummary.getTime() );
            int padSize = MAX_PADDED_BUILD_TIME_DURATION_LENGTH - buildTimeDuration.length();
            if ( padSize > 0 )
            {
                buffer.append( chars( ' ', padSize ) );
            }
            buffer.append( buildTimeDuration );
            buffer.append( "]" );
        }
        logger.info( buffer.toString() );
    }
}

如果你仍然想这样做,签出源代码,更新这个方法以输出你想要构建maven的方式,并开始使用你本地构建的maven

相关内容

最新更新