Когда я запускаю команду 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
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