Java 其他项目';在代码中通过maven API创建maven信息工件

Java 其他项目';在代码中通过maven API创建maven信息工件,java,maven-3,Java,Maven 3,我想获得任意maven项目的工件信息。它可以有多种构建方式/配置文件(例如客户端jar、服务应用程序和前端war文件),构建方式由项目维护人员以build.json文件的形式提供,并以我自己的格式提供 有没有一种方法,既不构建项目,也不制作插件,而是查询maven,将profile和pom.xml作为输入,并获取包步骤的项目工件列表?在某些情况下,它可能是默认的jar,在另一些情况下是war文件,但不带工件的名称(过度使用的输出文件名) 我知道如果我下达命令 mvn package 我可以解析

我想获得任意maven项目的工件信息。它可以有多种构建方式/配置文件(例如客户端jar、服务应用程序和前端war文件),构建方式由项目维护人员以build.json文件的形式提供,并以我自己的格式提供

有没有一种方法,既不构建项目,也不制作插件,而是查询maven,将profile和pom.xml作为输入,并获取包步骤的项目工件列表?在某些情况下,它可能是默认的jar,在另一些情况下是war文件,但不带工件的名称(过度使用的输出文件名)

我知道如果我下达命令

mvn package
我可以解析输出并获取工件名称。有没有办法通过代码获取该名称

想要在构建后获得war/jar/final二进制输出文件名和位置。不解析mvn命令的文本输出-通过maven库调用,如果可用?因此在我的“B-project”中,我可以询问我的“a-project”输出二进制文件的位置和文件名是什么。例如,可以是A-project/target/A-project-snapshot-1.jar或A-project/target/A-project-snapshot-1.war

使用Java代码


你在寻找?还是同样的另一个工件?@nullpointer否。当你最后说mvn package或mvn install时,你通常会得到一个工件,就像你得到的是一个web应用程序一样。war如果它是一个库。jar很可能输出名称是maven项目名称+版本,比如“MyProject-snapshot-0.0.1.war”@nullpointer我希望在构建之后获得war/jar名称及其位置。无需解析mvn命令的文本输出-通过maven库调用,如果可用?因此在我的“B-project”中,我可以询问我的“a-project”你的输出二进制文件的位置和文件名是什么?你如何考虑人们用某种方式重写输出目录路径的可能性?我不知道Maven是如何工作的。那么你是说插件可以重写,主API不知道输出伪像的真实位置吗?总之,我们可以一直工作。另外,对于遵循约定的项目,让maven给我一些信息。我们已经有了一个json文件,项目可以根据其他环境要求选择性地添加该文件,也可以在该文件中添加一个可选对象,以使该信息覆盖riden。@nullpointer