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 }
请注意,项目属性不能按依赖顺序排序,因为它们不包含任何依赖信息。