java如何解析POM中没有relativePath的模块依赖关系?
我正在从事一个项目,我们正在分析Maven Central工件中的依赖关系。我需要做的是使用org.apache.maven.plugins:maven-dependency-plugin:3.1.1:tree
将依赖项提取为GraphML,对于简单的项目,这很容易
但是,对于pom中具有<module>
依赖项但没有relativePath
的项目,我无法解决这些依赖项:
我的示例是Apache Hivemind项目pom,模块部分:
<modules>
<module>framework</module>
<module>xml</module>
<module>annotations</module>
<module>library</module>
<module>jmx</module>
<module>examples</module>
</modules>
这将导致此输出:
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR] The project org.apache.hivemind:hivemind-project:2.0-alpha-1 (/data/scratch/artifacts/org/apache/hivemind/hivemind-project/2.0-alpha-1/hivemind-project-2.0-alpha-1.pom) has 6 errors
[ERROR] Child module /data/scratch/artifacts/org/apache/hivemind/hivemind-project/2.0-alpha-1/framework of /data/scratch/artifacts/org/apache/hivemind/hivemind-project/2.0-alpha-1/hivemind-project-2.0-alpha-1.pom does not exist
[ERROR] Child module /data/scratch/artifacts/org/apache/hivemind/hivemind-project/2.0-alpha-1/xml of /data/scratch/artifacts/org/apache/hivemind/hivemind-project/2.0-alpha-1/hivemind-project-2.0-alpha-1.pom does not exist
[ERROR] Child module /data/scratch/artifacts/org/apache/hivemind/hivemind-project/2.0-alpha-1/annotations of /data/scratch/artifacts/org/apache/hivemind/hivemind-project/2.0-alpha-1/hivemind-project-2.0-alpha-1.pom does not exist
[ERROR] Child module /data/scratch/artifacts/org/apache/hivemind/hivemind-project/2.0-alpha-1/library of /data/scratch/artifacts/org/apache/hivemind/hivemind-project/2.0-alpha-1/hivemind-project-2.0-alpha-1.pom does not exist
[ERROR] Child module /data/scratch/artifacts/org/apache/hivemind/hivemind-project/2.0-alpha-1/jmx of /data/scratch/artifacts/org/apache/hivemind/hivemind-project/2.0-alpha-1/hivemind-project-2.0-alpha-1.pom does not exist
[ERROR] Child module /data/scratch/artifacts/org/apache/hivemind/hivemind-project/2.0-alpha-1/examples of /data/scratch/artifacts/org/apache/hivemind/hivemind-project/2.0-alpha-1/hivemind-project-2.0-alpha-1.pom does not exist
我将所有这些依赖项下载到我的本地repo中
如何调用mvn,以便让它在本地repo(或我指定的任何repo)中查找依赖项
# 1 楼答案
一位同事建议我尝试一种稍微不同的方法:将POM中的工件作为新(临时)POM中的依赖项
因此,对于
org.apache.hivemind:hivemind-framework:2.0-alpha-1
,按如下方式构造一个临时POM:然后使用临时POM作为-f参数