MAVEN:使用MAVEN测试运行多个MAVEN项目

MAVEN:使用MAVEN测试运行多个MAVEN项目,maven,Maven,我有3个maven项目。项目1、项目2和项目3。 项目3依赖于项目1和项目2,项目2依赖于项目1 为此,我在project2pom.xml文件中添加了这个 <modelVersion>4.0.0</modelVersion> <groupId>Project2</groupId> <artifactId>Project2</artifactId> <version>0.0.1-SNAPSHOT<

我有3个maven项目。项目1、项目2和项目3。 项目3依赖于项目1和项目2,项目2依赖于项目1

为此,我在project2pom.xml文件中添加了这个

<modelVersion>4.0.0</modelVersion>

  <groupId>Project2</groupId>
  <artifactId>Project2</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <dependencies>
     <dependency>
            <groupId>Project1</groupId>
            <artifactId>Project1</artifactId>
            <version>0.0.1-SNAPSHOT</version>
    </dependency>
  </dependencies>
4.0.0
项目2
项目2
0.0.1-快照
项目1
项目1
0.0.1-快照
Project3的pom.xml是-

<modelVersion>4.0.0</modelVersion>
  <groupId>Project3</groupId>
  <artifactId>Project3</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <dependencies>
        <dependency>
            <groupId>Project1</groupId>
            <artifactId>Project1</artifactId>
            <version>0.0.1-SNAPSHOT</version>
         </dependency>

         <dependency>
            <groupId>Project2</groupId>
            <artifactId>Project2</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
  </dependencies>
4.0.0
项目3
项目3
0.0.1-快照
项目1
项目1
0.0.1-快照
项目2
项目2
0.0.1-快照
在项目3中,我添加了testng.xml文件来运行测试。现在,如果我运行这个testng.xml文件,那么我的所有测试用例都会成功运行。如果我尝试使用maven测试运行测试用例,那么它就会失败

我已将testng.xml文件包含在pom文件下面的依赖项中,以使用maven运行testng测试-

<build>
        <!-- Source directory configuration -->
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <!-- Following plugin executes the testng tests -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.14.1</version>
                <configuration>
                    <!-- Suite testng xml file to consider for test execution -->
                    <suiteXmlFiles>
                        <suiteXmlFile>Tng1.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>
            <!-- Compiler plugin configures the java version to be used for compiling the code -->
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

src
org.apache.maven.plugins
maven surefire插件
2.14.1
Tng1.xml
maven编译器插件
1.6
1.6
它正在显示错误消息-

Project1:Project1:jar:0.0.1-SNAPSHOT的POM丢失,没有可用的依赖项信息。
缺少Project2:Project2:jar:0.0.1-SNAPSHOT的POM,没有可用的依赖项信息

无法在项目3上执行目标:无法解析项目3的依赖项:项目3:jar:0.0.1-SNAPSHOT:无法解析以下工件:项目1:Project1:jar:0.0.1-SNAPSHOT,项目2:Project2:jar:0.0.1-SNAPSHOT:找不到工件Project1:Project1:jar:0.0.1-SNAPSHOT->[帮助1


请帮助!!!

您必须首先在maven存储库中安装Project1和Project2

为此,启动命令

mvn clean install
在Project1和Project2目录中(从Project1开始,因为Project2依赖于Project1)

编辑:

对于Jenking,我通常使用模块声明创建一个根pom。Maven将按依赖项为您排序模块

在你的根pom中,你将拥有

<modules>
    <module>project1</module>
    <module>project2</module>
    <module>project3</module>
  </modules>

项目1
项目2
项目3
在你的子模块中

  <parent>
  <groupId>com.myGroupId</groupId>
  <artifactId>project-root</artifactId>
  <version>1.0-SNAPSHOT</version>
  </parent>

com.myGroupId

举个完整的例子

现在我必须再做一件事。我必须用Jenkins运行这个项目。如何做?我提供了Project3 pom.xml的路径。但是显示了以前使用maven test运行时提供的相同错误消息。请帮助!!!我将尝试这个,但是有没有办法用当前pom?如果您想使用当前的pom,您必须在project3之前在Jenkins中构建project1和project2。另一种方法是在nexus(或其他maven存储库)中部署project1.jar和project2.jar。谢谢您的回复!!!我将尝试第一个选项,因为我不知道如何将jar部署到nexus。