Java 在反应器中输出组Id:Artifact Id,而不仅仅是Artifact Id
当我运行诸如“mvn安装”或“mvn验证”之类的maven命令时,maven将输出它构建的所有项目的工件ID。我想在脚本中使用此输出,然后调用类似于以下命令的内容:Java 在反应器中输出组Id:Artifact Id,而不仅仅是Artifact Id,java,maven,Java,Maven,当我运行诸如“mvn安装”或“mvn验证”之类的maven命令时,maven将输出它构建的所有项目的工件ID。我想在脚本中使用此输出,然后调用类似于以下命令的内容: mvn clean install -pl <comma separated list of groupId:artifactId> maven在默认情况下不支持此功能,它将输出项目的名称,这是很难修复的 有关消息来源是什么 private void logReactorSummary( MavenSession se
mvn clean install -pl <comma separated list of groupId:artifactId>
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() );
}
}
private void日志反应器摘要(MavenSession会话)
{
logger.info(字符('-',行长度));
logger.info(“反应堆概要:”);
logger.info(“”);
MavenExecutionResult=session.getResult();
for(MavenProject项目:session.getProjects())
{
StringBuilder缓冲区=新的StringBuilder(128);
append(project.getName());
buffer.append(“”);
if(buffer.length()0)
{
追加(字符(“”,padSize));
}
append(buildTimeDuration);
缓冲区。追加(“]”);
}
else if(buildSummary实例of BuildFailure)
{
追加(“失败[”);
字符串buildTimeDuration=formatDuration(buildSummary.getTime());
int padSize=MAX_PADDED_BUILD_TIME_DURATION_LENGTH-buildTimeDuration.LENGTH();
如果(焊盘大小>0)
{
追加(字符(“”,padSize));
}
append(buildTimeDuration);
缓冲区。追加(“]”);
}
logger.info(buffer.toString());
}
}
如果您仍然想这样做,请签出源代码,更新此方法以输出您想要的构建maven的方式,并开始使用您的本地maven构建阅读Jigar Joshi的评论后,我创建了一个具有我想要的功能的maven本地副本。我正在与Maven开发人员交谈,看看是否可以选择将groupId:artifactId输出到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() );
}
}