2013-03-24 5 views
12

Ich versuche, meine github Java/PHP project mit travis-ci Umgebung zu integrieren. Dies ist meine travis Konfiguration:Java-Generika und Anmerkungen nicht in Version 1.3 unterstützt (Travis-Integration)

language: java 
jdk: 
    - openjdk7 
    - oraclejdk7 
script: mvn test 

Unten ist die Ausgabe, die Drucke travis:

Using worker: bluebox-linux-1.worker.travis-ci.org:travis-linux-9 
$ git clone --depth=50 --branch=master git://github.com/tkoomzaaskz/wealthy-laughing-duck.git tkoomzaaskz/wealthy-laughing-duck 
Cloning into 'tkoomzaaskz/wealthy-laughing-duck'... 
remote: Counting objects: 458, done. 
remote: Compressing objects: 100% (263/263), done. 
remote: Total 458 (delta 156), reused 390 (delta 96) 
Receiving objects: 100% (458/458), 458.40 KiB, done. 
Resolving deltas: 100% (156/156), done. 
$ cd tkoomzaaskz/wealthy-laughing-duck 
$ git checkout -qf 47d1ef528f19ad6d01288ac9a3d4c550a79b14f4 
$ jdk_switcher use openjdk7 
Switching to OpenJDK7 (java-1.7.0-openjdk-amd64), JAVA_HOME will be set to /usr/lib/jvm/java-7-openjdk-amd64 
update-alternatives: error: no alternatives for apt. 
update-alternatives: error: no alternatives for mozilla-javaplugin.so. 
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so 
$ java -version 
java version "1.7.0_15" 
OpenJDK Runtime Environment (IcedTea7 2.3.7) (7u15-2.3.7-0ubuntu1~12.04.1) 
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode) 
$ javac -version 
javac 1.7.0_15 
$ mvn install --quiet -DskipTests=true 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project wealthy-laughing-duck: Compilation failure: Compilation failure: 
[ERROR] /home/travis/build/tkoomzaaskz/wealthy-laughing-duck/src/main/java/com/blogspot/symfonyworld/wealthylaughingduck/dao/OutcomeDao.java:[19,8] error: generics are not supported in -source 1.3 
[ERROR] 
[ERROR] (use -source 5 or higher to enable generics) 
[ERROR] /home/travis/build/tkoomzaaskz/wealthy-laughing-duck/src/main/java/com/blogspot/symfonyworld/wealthylaughingduck/model/Income.java:[12,1] error: annotations are not supported in -source 1.3 
[ERROR] 
[ERROR] (use -source 5 or higher to enable annotations) 
[ERROR] /home/travis/build/tkoomzaaskz/wealthy-laughing-duck/src/main/java/com/blogspot/symfonyworld/wealthylaughingduck/model/User.java:[10,1] error: annotations are not supported in -source 1.3 

Die Ausgabe sagt, dass ich die zu alter Version von Java ist mit Anmerkungen und Generika zu verwenden. Aber das sind nichts Neues und sie müssen irgendwie unterstützt werden (denke ich). Ich habe mir Travis/Java-Dokumente angesehen, aber keine Option für die Java-Version gefunden (daher habe ich versucht, verschiedene jdks zu verwenden). Kann mir jemand zeigen, was ich in die Travis-Konfigurationsdatei schreiben soll?


edit:

folgende @hertzsprung, lief ich mvn help:effective-pom und es ergab folgende Ausgabe (in der Tat weder source noch target Attribut definiert Hinweis für maven-compiler-plugin - was kann ich dagegen tun?):

<!-- ====================================================================== --> 
<!--                  --> 
<!-- Generated by Maven Help Plugin on 2013-03-24T08:15:13     --> 
<!-- See: http://maven.apache.org/plugins/maven-help-plugin/    --> 
<!--                  --> 
<!-- ====================================================================== --> 

<!-- ====================================================================== --> 
<!--                  --> 
<!-- Effective POM for project            --> 
<!-- 'com.blogspot.symfony-world:wealthy-laughing-duck:jar:1.0-SNAPSHOT' --> 
<!--                  --> 
<!-- ====================================================================== --> 

<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.blogspot.symfony-world</groupId> 
    <artifactId>wealthy-laughing-duck</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <name>wealthy-laughing-duck</name> 
    <url>http://maven.apache.org</url> 
    <build> 
    <sourceDirectory>/var/www/github/wealthy-laughing-duck/src/main/java</sourceDirectory> 
    <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory> 
    <testSourceDirectory>/var/www/github/wealthy-laughing-duck/src/test/java</testSourceDirectory> 
    <outputDirectory>/var/www/github/wealthy-laughing-duck/target/classes</outputDirectory> 
    <testOutputDirectory>/var/www/github/wealthy-laughing-duck/target/test-classes</testOutputDirectory> 
    <resources> 
     <resource> 
     <mergeId>resource-0</mergeId> 
     <directory>/var/www/github/wealthy-laughing-duck/src/main/resources</directory> 
     </resource> 
    </resources> 
    <testResources> 
     <testResource> 
     <mergeId>resource-1</mergeId> 
     <directory>/var/www/github/wealthy-laughing-duck/src/test/resources</directory> 
     </testResource> 
    </testResources> 
    <directory>/var/www/github/wealthy-laughing-duck/target</directory> 
    <finalName>wealthy-laughing-duck-1.0-SNAPSHOT</finalName> 
    <pluginManagement> 
     <plugins> 
     <plugin> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.6</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>2.2-beta-4</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-clean-plugin</artifactId> 
      <version>2.3</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.0.2</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.1</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-deploy-plugin</artifactId> 
      <version>2.4</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-ear-plugin</artifactId> 
      <version>2.3.2</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-ejb-plugin</artifactId> 
      <version>2.2</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-install-plugin</artifactId> 
      <version>2.3</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-jar-plugin</artifactId> 
      <version>2.2</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <version>2.6.1</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-plugin-plugin</artifactId> 
      <version>2.8</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-rar-plugin</artifactId> 
      <version>2.2</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-release-plugin</artifactId> 
      <version>2.0-beta-8</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-resources-plugin</artifactId> 
      <version>2.3</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-site-plugin</artifactId> 
      <version>2.1</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-source-plugin</artifactId> 
      <version>2.0.4</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.4.3</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.1-beta-1</version> 
     </plugin> 
     </plugins> 
    </pluginManagement> 
    <plugins> 
     <plugin> 
     <artifactId>maven-help-plugin</artifactId> 
     <version>2.2</version> 
     </plugin> 
    </plugins> 
    </build> 
    <repositories> 
    <repository> 
     <snapshots> 
     <enabled>false</enabled> 
     </snapshots> 
     <id>central</id> 
     <name>Maven Repository Switchboard</name> 
     <url>http://repo1.maven.org/maven2</url> 
    </repository> 
    </repositories> 
    <pluginRepositories> 
    <pluginRepository> 
     <releases> 
     <updatePolicy>never</updatePolicy> 
     </releases> 
     <snapshots> 
     <enabled>false</enabled> 
     </snapshots> 
     <id>central</id> 
     <name>Maven Plugin Repository</name> 
     <url>http://repo1.maven.org/maven2</url> 
    </pluginRepository> 
    </pluginRepositories> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.thrift</groupId> 
     <artifactId>libthrift</artifactId> 
     <version>0.9.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.7.3</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>4.1.10.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.24</version> 
    </dependency> 
    </dependencies> 
    <reporting> 
    <outputDirectory>/var/www/github/wealthy-laughing-duck/target/site</outputDirectory> 
    </reporting> 
    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
</project> 

[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESSFUL 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 16 seconds 
[INFO] Finished at: Sun Mar 24 20:15:13 CET 2013 
[INFO] Final Memory: 11M/60M 
[INFO] ------------------------------------------------------------------------ 

Dies ist meine Quelle pom.xml Inhalt:

<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.blogspot.symfony-world</groupId> 
    <artifactId>wealthy-laughing-duck</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>wealthy-laughing-duck</name> 
    <url>http://maven.apache.org</url> 

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

    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.thrift</groupId> 
      <artifactId>libthrift</artifactId> 
      <version>0.9.0</version> 
     </dependency> 
     <dependency> 
      <artifactId>slf4j-api</artifactId> 
      <groupId>org.slf4j</groupId> 
      <type>jar</type> 
      <version>1.7.3</version> 
     </dependency> 
     <dependency> 
      <artifactId>hibernate-core</artifactId> 
      <groupId>org.hibernate</groupId> 
      <type>jar</type> 
      <version>4.1.10.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.24</version> 
     </dependency> 
    </dependencies> 
</project> 
+2

Dies sieht eher wie ein Problem mit Ihrem Pom als in Travis-ci. Schau dir die 'mvn help: effective-pom' für wohlhabende-laughing-duck an und schau ob die oder Elemente für das maven-compiler-plugin gesetzt wurden. – hertzsprung

+0

Ich habe die Ausgabe in Ihrem Kommentar erwähnt. Kannst du es dir anschauen und die Lösung vorschlagen? – ducin

+3

Sie könnten [explizit Quelle und Ziel angeben] (http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html) verwenden, um 1.7 zu verwenden, um zu sehen, ob das hilft? – hertzsprung

Antwort

36

Bitte versuchen Sie, den folgenden Code in Ihre pom.xml für Ihre Maven-Build-Konfiguration aufzunehmen. Ich hatte das gleiche Problem wie dich selbst, und dies schien mir den Trick zu tun:

<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
        <compilerArgument></compilerArgument> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 
+1

Das funktioniert auch für mich, aber können Sie mir sagen, warum das das Problem behebt? Vielen Dank. –

+0

@ Shubham.Shukla - es war so lange her, dass ich völlig vergessen habe. Ich denke, es ist, weil Sie 1,5+ für Anmerkungen benötigen. – blackpanther

+0

Ich mache dir dafür keine Vorwürfe! :) Vielen Dank. –

7

Sieht aus wie aus irgendeinem seltsamen Grund travis wird mit Quellebene und Ziel Jvm eingestellt 1,3 bis jdk. Ich denke, sie sollten den Maven-Standard beibehalten (was 1,5 ist), weil dieser Fehler mich überrascht hat und es einige Zeit brauchte, um ihn zu beheben, da ich meine Projektkonfiguration und mein Verhalten nicht nach externen Tools ändern möchte.

language: java 
jdk: 
    - oraclejdk7 
    - openjdk7 
install: mvn install -Dmaven.compiler.target=1.5 -Dmaven.compiler.source=1.5 -DskipTests=true -B 
script: mvn test -Dmaven.compiler.target=1.5 -Dmaven.compiler.source=1.5 -B 

dieses: mit approriate Source-Level-und Ziel-jvm kompilieren

Wenn Sie Ihre pom.xml vermeiden wollen, zu modifizieren (was nicht von der kontinuierlichen Integrations-Tool abhängig sein sollte), können Sie travis konfigurieren Kompiliert unter Verwendung von 1.5 Quellniveau und erzeugt einen Bytecode, der für ein 1.5 jvm vorgesehen ist. Sie können 1,7 anstelle von 1,5 angeben, wenn Sie ein Ziel von 1,7 festlegen möchten.