2017-12-27 10 views
0

Mein Team verwendet JavaEE und Angular 4 sowie den AWS EC2-Server, auf dem Jenkins installiert ist. Nach erfolgreicher Zusammenführung mit master können Sie den Inhalt erstellen und Slack-Benachrichtigungen generieren der Status des Builds Wenn ich jedoch, der Typ, der dafür zuständig ist, in den EC2-Server geht, um nach dem Code zu suchen, kann ich die WAR-Datei, die Jenkins erstellen soll, nicht finden, weder in .jenkins noch anderswo. Wie kann Jenkins eine WAR-Datei erstellen, auf die ich zugreifen kann, um den RESTful-API-Dienst zu starten?Kompilieren der War-Datei des Projekts auf EC2 Jenkins

Nach einer misspell in den pom.xml Fixierung, sieht es so aus jetzt:

<?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>com.zenith</groupId> 
    <artifactId>SHOULDi-back</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>war</packaging> 

    <name>SHOULDi-back</name> 

    <properties> 
     <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 


    <dependencies> 

     <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> 
<dependency> 
    <groupId>com.google.code.gson</groupId> 
    <artifactId>gson</artifactId> 
    <version>2.8.2</version> 
</dependency> 



     <dependency> 
      <groupId>oracle</groupId> 
      <artifactId>ojdbc7</artifactId> 
      <version>12.1.0</version> 
     </dependency> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.glassfish.jersey.bundles/jaxrs-ri --> 
     <dependency> 
      <groupId>org.glassfish.jersey.bundles</groupId> 
      <artifactId>jaxrs-ri</artifactId> 
      <version>2.25</version> 
     </dependency> 



     <!-- https://mvnrepository.com/artifact/org.glassfish.jersey.media/jersey-media-moxy --> 
     <dependency> 
      <groupId>org.glassfish.jersey.media</groupId> 
      <artifactId>jersey-media-moxy</artifactId> 
      <version>2.25</version> 
     </dependency> 


     <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>5.2.8.Final</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>5.4.0.Final</version> 
     </dependency> 






     <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-beans</artifactId> 
      <version>4.3.7.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>4.3.1.Final</version> 
     </dependency> 
    </dependencies> 
    <build> 
     <finalName>SHOULDi-back</finalName> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.2</version> 
      </plugin> 
     </plugins> 
    </build> 
</project> 
+0

überprüfen Sie es in Ihrem jenkins Arbeitsbereich Ordner –

+0

Ohne Ihre Pom-Datei/Protokolldateien usw. zu sehen ist es schwer zu erraten, was das Problem ist ... Haben Sie die Verpackung 'Krieg' definiert? – khmarbaise

+0

Ich tippe 'find ~/.jenkins/workspace -name * war *' und es gibt nichts zurück. –

Antwort

0

Je nach Jenkins Installation kann die .war lebt in/var/lib/jenkins/Arbeitsbereich, oder ein anderes Verzeichnis . Versuchen Sie stattdessen find /var/lib/jenkins/workspace -name *war*.

Um das Jenkins Home-Verzeichnis zu finden, wenn nicht das oben genannte, melden Sie sich beim Server an und führen Sie sudo su - jenkins && pwd; Wenn dies fehlschlägt, bearbeiten Sie/etc/passwd und ändern Sie den Benutzer von jenkins so, dass/bin/bash anstelle von/bin/false verwendet wird, und versuchen Sie es erneut.

+0

Gibt es welche? Was muss ich mit dem Maven-Integrations-Plugin machen, damit es funktioniert? Mein Team nutzt Maven, um die App auf ihren Maschinen zu entwickeln. –

+0

Auch das hat nicht funktioniert, und das war, nachdem ich das '/ etc/passwd' geändert habe, die Jenkins heruntergefahren und erneut ausgeführt habe. –

0

Die Frage schien etwas zu sein mit meiner pom.xml Datei zu tun, die diese lästigen Abhängigkeit hatte:

<dependency> 
     <groupId>com.oracle</groupId> 
     <artifactId>ojdbc7</artifactId> 
     <version>12.1.0</version> 
    </dependency> 

, die ich Schrott musste die Build an die Arbeit und die WAR-Datei zu erzeugen. Außerdem musste ich das Maven-Ziel der obersten Ebene als Build-Schritt aufrufen. Dort habe ich den Pfad zu meiner pom.xml angegeben. Danach war Build erfolgreich und WAR-Datei wurde generiert. Ob diese .war-Datei tatsächlich funktioniert oder nicht, das ist ein anderes Thema.

Verwandte Themen