2016-04-29 6 views
1

Ich habe ein Maven Project auf Jenkins erstellt, das einen Merkurzweig von Butbucket klonen wird, damit ich meine Selenium TestNG Scripts ausführen kann. Ich habe versucht, den Arbeitsbereich zu löschen, um einen sauberen Build zu erhalten, aber es führte zu demselben Fehler wie zuvor. Außerdem habe ich für jedes Modul in meinem jenkins-Arbeitsbereich nach den pom.xml-Dateien gesucht und sie sind alle vorhanden. Klicken Sie auf das Bild für den Fehlerbericht von der Konsole. Ich verstehe nicht, warum sowohl Jenkins als auch Eclipse die Datei pom.xml meiner Abhängigkeiten nicht finden kann, wenn sie sich im selben Projektordner befindet.Maven Project mit mehreren Modulen ist nicht in der Lage, pom.xml Module zu finden - Jenkins/Eclipse

Image: Jenkins Console Output

pom.xml

<?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> 

<parent> 
    <artifactId>PSWebTestFramework</artifactId> 
    <groupId>com.guidewire.pstesting</groupId> 
    <version>1.0-SNAPSHOT</version> 
</parent> 

<artifactId>pswtf-test-tp-pc</artifactId> 

<dependencies> 
    <dependency> 
     <groupId>org.testng</groupId> 
     <artifactId>testng</artifactId> 
     <version>6.8.21</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hamcrest</groupId> 
     <artifactId>hamcrest-all</artifactId> 
     <version>1.3</version> 
    </dependency> 
    <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-java</artifactId> 
     <version>2.53.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.guidewire.pstesting</groupId> 
     <artifactId>pswtf-application-core</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>com.guidewire.pstesting</groupId> 
     <artifactId>pswtf-test-core</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>com.guidewire.pstesting</groupId> 
     <artifactId>pswtf-test-tp-core</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>com.guidewire.pstesting</groupId> 
     <artifactId>pswtf-application-tp-pc</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>com.guidewire.pstesting</groupId> 
     <artifactId>pswtf-application-ootb-pc</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 
</dependencies> 

<build> 
    <defaultGoal>test</defaultGoal> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.18.1</version> 
      <configuration> 
       <excludes>META-INF/*.SF</excludes> 
       <excludes>META-INF/*.DSA</excludes> 
       <excludes>META-INF/*.RSA</excludes> 
       <argLine>-Dorg.uncommons.reportng.escape-output=false</argLine> <!-- get html in reports rather than string --> 
       <properties> 
        <property> 
         <name>usedefaultlisteners</name> 
         <value>false</value> <!-- disabling default listeners is optional --> 
        </property> 
        <property> 
         <name>listener</name> 
         <value>org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter, org.testng.reporters.XMLReporter</value> 
        </property> 
       </properties> 
       <additionalClasspathElements> 
        <additionalClasspathElement>${basedir}/src/test/conf</additionalClasspathElement> 
        <additionalClasspathElement>${basedir}/src/test/testdata</additionalClasspathElement> 
       </additionalClasspathElements> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
</project> 

UPDATE: bezogen auf die Lösung unter ich meinen Job Konfigurationen verändert und nach dem Bild unten, und ich konnte einen Erfolg statt des Scheiterns bekommen.

Image: Job Configuration

Antwort

1

Der Fehler im Screenshot, der Du bedeutet angebracht, dass die Artefakt-ID "pswtf-Test-tp-PC" nicht in der Lage ist, die Abhängigkeit im lokalen Maven-Repo zu finden.

Erstellen Sie alle Projekte von übergeordneten POM mit Maven <modules> Tags. Fügen Sie dies in pom.xml im übergeordneten Ordner mit der Artefakt-ID PSWebTestFramework hinzu. Führen Sie diese Mutter pom und dann aus dem Projekt - pswtf-Test-tp-pc

<modules> 
    <module>pswtf-application-core</module> 
    <module>pswtf-test-core</module> 
    <module>pswtf-test-tp-core</module> 
    <module>pswtf-application-tp-pc</module> 
</modules> 

Dies sollte das jedes Modul bauen und installieren Sie es in lokaler Maven-Repo.

P.S. - Verwenden Sie den Befehl mvn clean install, um Abhängigkeiten im lokalen Repo zu installieren.

+0

Ich habe bereits ein Modul-Tag in meiner Elternpom.xml-Datei und habe versucht, diesen Befehl ohne Erfolg zu verwenden. Es führt zu einer Testausnahme, was meiner Meinung nach bedeutet, dass das Selenskript gestartet wurde, aber fehlgeschlagen ist, wenn keine zu ladende Datei testng.xml vorhanden war. –

+0

Danke für die Hilfe. Ich habe "clean install" zum Ziel in Jenkins hinzugefügt und der Build war erfolgreich. –

Verwandte Themen