Java 如何解决POM中没有relativePath的模块依赖关系?
我正在从事一个项目,我们正在分析Maven Central工件中的依赖关系。我需要做的是使用Java 如何解决POM中没有relativePath的模块依赖关系?,java,maven,dependencies,maven-3,Java,Maven,Dependencies,Maven 3,我正在从事一个项目,我们正在分析Maven Central工件中的依赖关系。我需要做的是使用org.apache.maven.plugins:maven dependency-plugin:3.1.1:tree将依赖项提取为GraphML,对于简单的项目来说这很容易 但是,对于在pom中具有依赖项但没有relativePath的项目,我无法解决这些依赖项: 我的示例是Apache Hivemind项目pom,模块部分: <modules> <module>fram
org.apache.maven.plugins:maven dependency-plugin:3.1.1:tree
将依赖项提取为GraphML,对于简单的项目来说这很容易
但是,对于在pom中具有
依赖项但没有relativePath
的项目,我无法解决这些依赖项:
我的示例是Apache Hivemind项目pom,模块部分:
<modules>
<module>framework</module>
<module>xml</module>
<module>annotations</module>
<module>library</module>
<module>jmx</module>
<module>examples</module>
</modules>
我将所有这些依赖项下载到我的本地repo中
如何调用mvn,以便让它在本地repo(或我指定的任何repo)中查找依赖项?一位同事建议我尝试一种稍微不同的方法:将POM中的工件作为新(临时)POM中的依赖项 因此,对于
org.apache.hivemind:hivemind framework:2.0-alpha-1
,构建一个临时POM,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1</version>
<dependencies>
<dependency>
<groupId>org.apache.hivemind</groupId>
<artifactId>hivemind-framework</artifactId>
<version>2.0-alpha-1</version>
</dependency>
</dependencies>
</project>
4.0.0
com.example
演示
0.0.1
org.apache.hivemind
hivemind框架
2.0-α-1
然后使用该临时POM作为-f参数。如果未指定
。
标记,则它有一个默认值,即。/POM.xml
?这被称为配置之上的约定。您是正确的,它默认为。/pom.xml
,但是对于我下载以检查的工件,文件名永远不存在,mvn然后假设每个模块都作为我试图分析的g/a/v的子目录存在。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1</version>
<dependencies>
<dependency>
<groupId>org.apache.hivemind</groupId>
<artifactId>hivemind-framework</artifactId>
<version>2.0-alpha-1</version>
</dependency>
</dependencies>
</project>