Вывод идентификатора группы: идентификатор артефакта в реакторе, а не просто идентификатор артефакта

1

Когда я запускаю команду maven, такую как "mvn install" или "mvn validate", maven выводит идентификаторы артефактов всех проектов, которые он создает. Я хочу использовать этот вывод в скрипте, чтобы затем вызвать что-то похожее на следующую команду:

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

К сожалению, я не смог найти, как получить maven для вывода идентификатора группы, а также идентификатора артефакта. До сих пор я прочесывал плагины и плагины maven, но мне не повезло. Есть какой-либо способ сделать это?

Edit: Оказывается, вы можете использовать только идентификатор артефакта, если вы положите двоеточие перед ним. Например

mvn clean install -pl :fooProject,:barProject
  • 0
    Прочитав комментарий Джигара Джоши, я создал локальную копию Maven, которая обладает нужной мне функциональностью. Я разговариваю с разработчиками Maven, чтобы узнать, смогу ли я получить свой вариант вывода groupId: artifactId, зафиксированный в следующей версии Maven.
Теги:
maven

1 ответ

0

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню