所以这是场景。 我有一个 Maven 项目,我使用一些(7)jar 进行单元测试。所有这些 jar 都存在于 Maven 远程/本地(.m2)存储库中。我必须将它们单独添加为依赖项。
我想创建一个 pom(父级),其中包含这些 jar 作为依赖项,这样,如果我将此 pom(父级)作为依赖项包含在内,所有 7 个依赖项都会自动解析。
我尝试了这段代码,但我认为包装类型存在一些问题。 (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>some.package</groupId>
<artifactId>full-PACK</artifactId>
<version>1.1</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.21.0</version>
<scope>test</scope>
</dependency>
<!-- 6 more similar dependencies -->
</dependencies>
</project>
我希望这个pom只充当指针,这应该解决它们各自包中的依赖关系,而不是这个pom的包中的依赖关系。我不想为此 pom 创建一个 fat jar 子。
有没有一种方法可以让我使用这个 pom 作为指针,以便它只告诉项目导入这 7 个 jar?
最佳答案
我还没有测试过它,但是按照 Maven 逻辑,这应该可以工作:
使用打包 pom
创建一个项目,将 7 个 jar 引用为 compile
依赖项:
<?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>some.package</groupId>
<artifactId>full-PACK</artifactId>
<version>1.1</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.21.0</version>
<scope>compile</scope>
</dependency>
<!-- 6 more similar dependencies -->
</dependencies>
</project>
现在在您的项目中声明对此 pom 的 test
依赖项,例如
<dependency>
<groupId>some.package</groupId>
<artifactId>full-PACK</artifactId>
<version>1.1</version>
<type>pom</type>
<scope>test</scope>
</dependency>
您的方法失败了,因为 test
依赖项不可传递。看一下
https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
关于java - 在 pom.xml 中包含 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49239918/