内省一堂课

Maven Runtime 可以自省一个类以获取其相关的 Maven 项目的元数据。

请注意,这依赖于 Maven 描述符文件相对于被内省的类是唯一的。例如,这在Maven Jar Plugin生成的 jar 中是正确的,在战争中的 jar 中也是如此。这不适用于由Maven Assembly Plugin 的 jar-with-dependencies描述符构建的 jar,因为相对于给定类有多个 Maven 描述符,从而导致歧义。

使用项目属性

获取类的 Maven 项目的MavenProjectProperties实例:

/**
 * @component
 */
private MavenRuntime runtime;

public void processProject() throws MavenRuntimeException
{
    MavenProjectProperties project = runtime.getProjectProperties( MyClass.class );
    
    // process project
}

使用项目 XML

获取类的 Maven 项目的MavenProject实例:

/**
 * @component
 */
private MavenRuntime runtime;

public void processProject() throws MavenRuntimeException
{
    MavenProject project = runtime.getProject( MyClass.class );
    
    // process project
}