仅将super pom用于测试

时间:2019-03-04 10:00:53

标签: java maven integration-testing

我有很多Maven项目,它们相互依赖。

我已经为实际项目设置了超级pom,并且效果很好。

现在,我想为我所有的Integrationtests项目创建一个超级pom。我做了同样的事情,但是每次我运行maven测试时都会失败。

  

[错误]无法在项目 *上执行目标:无法解决   项目 :jar:0.0.1-SNAPSHOT的依赖项:   无法解析工件: :jar:0.0.1-SNAPSHOT,    :jar:0.0.1-SNAPSHOT, < em>: :jar:0.0.1-SNAPSHOT, :jar:0.0.1-SNAPSHOT:找不到工件* :***:jar:0.0.1-SNAPSHOT-> [帮助1]

问题在于maven正在寻找jar文件,但是我的项目包含war项目。这是我的pom文件:

<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>***</groupId>
    <artifactId>***-parent_IntegrationTests</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
<name>***_IntegrationTests</name>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.0</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

<modules>
    <module>../***</module>
    <module>../***</module>
    <module>../***</module>
    <module>../***</module>
    <module>../***</module>
    <module>../***</module>
</modules>

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>

有没有办法告诉maven使用war文件而不是jars?

编辑:很抱歉,如果不清楚。我想要一个Maven项目来运行我的所有integrationtest项目。每个都是一个Maven项目。因此,我想在其中使用带有模块的pom(所有Integrationtest项目)。但是每个Integrationtest项目都包含对其他项目的依赖关系,我想解决的问题是maven找不到我的编译项目,因为它查找jar文件,但我的项目是war文件。

1 个答案:

答案 0 :(得分:0)

您可以通过在依赖项中使用<type>war</type>来将WAR引用为依赖项。