所以这是场景。 我有一个maven项目,我正在使用一些(7)罐进行单元测试。所有这些jar都存在于maven远程/本地(.m2)存储库中。我必须将它们作为依赖项单独添加。
我想创建一个包含这些jar作为依赖项的pom(父),这样如果我将这个pom(parent)作为依赖项包含在内,那么所有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创造一个胖罐。
有没有办法可以将这个pom用作指针,以便它只是告诉项目导入那7个罐子?
答案 0 :(得分:1)
我还没有测试过,但是遵循Maven逻辑,这应该可行:
创建一个包装pom
的项目,该项目将7个罐子作为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