【发布时间】:2016-07-14 13:27:51
【问题描述】:
我正在尝试编写一个 Maven 扩展来计算每个构建会话的持续时间。这是我的扩展:
@Parameter( defaultValue = "${project}", readonly = true, required = true )
private MavenProject project;
@Component(role = AbstractMavenLifecycleParticipant.class)
public class BuildTimeLogger extends AbstractMavenLifecycleParticipant {
public void afterSessionStart(MavenSession session) throws MavenExecutionException {
System.out.println("${project}: "+project);
System.out.println("Top level project:"+session.getTopLevelProject());
System.out.println("session.getcurrentproject():"+session.getCurrentProject()); }
}
我不确定为什么上述所有打印语句都打印null。我是否正确使用会话对象?我的理解是 Maven 应该发送正在构建的项目的所有会话细节。我在不同的项目上试过这个,但似乎对我不起作用。
【问题讨论】:
-
不确定这里出了什么问题,但您可能需要检查this
-
github.com/khmarbaise/maven-buildtime-profiler 和 LifeCycleParticipant 不是解决这个问题的最佳方法,因为 EventSpy 是更好的方法......此外,LifeCycleParticipant 只能在 Maven 3.2.5+ 上正常工作......
标签: maven maven-2 maven-3 maven-plugin maven-extension