Maven Runtime 可以自省类加载器,以获取其中可访问的每个 Maven 项目的元数据。
要获取在指定类加载器中可访问的每个 Maven 项目的MavenProjectProperties实例列表:
/**
* @component
*/
private MavenRuntime runtime;
public void processProjects() throws MavenRuntimeException
{
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
List<MavenProjectProperties> projects = runtime.getProjectsProperties( classLoader );
// process projects
}
要获取在指定类加载器中可访问的每个 Maven 项目的MavenProject实例列表:
/**
* @component
*/
private MavenRuntime runtime;
public void processProjects() throws MavenRuntimeException
{
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
List<MavenProject> projects = runtime.getProjects( classLoader );
// process projects
}
使用项目 XML 获取 Maven 元数据时,生成的MavenProject实例可以按依赖顺序排序。要获取在指定类加载器中可访问的每个 Maven 项目的MavenProject实例列表,该类加载器按其依赖项排序:
/**
* @component
*/
private MavenRuntime runtime;
public void processProjects() throws MavenRuntimeException
{
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
List<MavenProject> projects = runtime.getSortedProjects( classLoader );
// process projects
}
请注意,项目属性不能按依赖顺序排序,因为它们不包含任何依赖信息。