2015-02-04 10 views
7

Ich versuche Lombok mit Maven und VRaptor auf IntelliJ zu verwenden, aber es funktioniert nicht.Lombok und Maven

ich bereits einige Informationen in Stackoverflow lesen, aber keine mein Problem gelöst, aktiviert i bereits den Annotation-Prozessor in IntelliJ aber immer noch nichts.

Ich habe versucht, es auch von der Befehlszeile (Windows) zu kompilieren und hat nicht funktioniert.

Ich habe auch versucht, ein anderes Projekt ohne Maven und fügen Sie die Bibliothek, erstellen Sie einige Klassen für den Test und es funktioniert, kompilieren und läuft perfekt.

Irgendwelche Hilfe?

Das Projekt hat nur 2 Klasse, 1 Einheit und 1 Controller

Hier ist meine pom.xml

<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>razor</groupId> 
<artifactId>controle-de-ponto</artifactId> 
<version>0.0.1</version> 
<packaging>war</packaging> 

<description>Um sistema de controlo de ponto</description> 

<repositories> 
    <repository> 
     <id>projectlombok.org</id> 
     <url>http://projectlombok.org/mavenrepo</url> 
    </repository> 
</repositories> 

<properties> 
    <project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding> 
    <weld.version>2.1.2.Final</weld.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>br.com.caelum</groupId> 
     <artifactId>vraptor</artifactId> 
     <version>4.1.4</version> 
    </dependency> 

    <dependency> 
     <groupId>org.projectlombok</groupId> 
     <artifactId>lombok</artifactId> 
     <version>0.11.6</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.jboss.weld.servlet</groupId> 
     <artifactId>weld-servlet-core</artifactId> 
     <version>2.1.2.Final</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.jboss.weld</groupId> 
     <artifactId>weld-core-impl</artifactId> 
     <version>2.1.2.Final</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>javax.el</groupId> 
     <artifactId>el-api</artifactId> 
     <version>2.2</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator-cdi</artifactId> 
     <version>5.1.1.Final</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.inject</groupId> 
     <artifactId>javax.inject</artifactId> 
     <version>1</version> 
     <!-- uncomment this line on app servers --> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.velocity</groupId> 
     <artifactId>velocity</artifactId> 
     <version>1.7</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.velocity</groupId> 
     <artifactId>velocity-tools</artifactId> 
     <version>2.0</version> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>4.3.8.Final</version> 
    </dependency> 

    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.34</version> 
     <scope>runtime</scope> 
    </dependency> 

    <dependency> 
     <groupId>br.com.caelum.vraptor</groupId> 
     <artifactId>vraptor-jpa</artifactId> 
     <version>4.0.2</version> 
    </dependency> 

    <dependency> 
     <groupId>br.com.caelum.vraptor</groupId> 
     <artifactId>vraptor-java8</artifactId> 
     <version>4.0.0.Final</version> 
    </dependency> 
</dependencies> 

<build> 
    <finalName>controle-de-ponto</finalName> 
    <!--<outputDirectory>/Users/turini/Documents/workspace/vraptor4/vraptor-blank-project/src/main/webapp/WEB-INF/classes</outputDirectory>--> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <compilerVersion>1.8</compilerVersion> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

Fehler, wenn ich kompilieren zu versuchen:

[INFO] ------------------------------------------------------------------------ 
[INFO] Building controle-de-ponto 0.0.1 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ controle-de-ponto --- 
[INFO] Using 'ISO-8859-1' encoding to copy filtered resources. 
[INFO] Copying 3 resources 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ controle-de-ponto --- 
[INFO] Changes detected - recompiling the module! 
[INFO] Compiling 2 source files to C:\Users\Kennedy\Desktop\controle-de-ponto\target\classes 
[INFO] ------------------------------------------------------------- 
[ERROR] COMPILATION ERROR : 
[INFO] ------------------------------------------------------------- 
[ERROR] /C:/Users/Kennedy/Desktop/controle-de-ponto/src/main/java/br/com/caelum/vraptor/controller/IndexController.java:[37,16] cannot find symbol 
    symbol: method setNome(java.lang.String) 
    location: variable usuario of type org.razor.cponto.beans.Usuario 
[INFO] 1 error 
[INFO] ------------------------------------------------------------- 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 1.167 s 
[INFO] Finished at: 2015-02-04T13:41:01-02:00 
[INFO] Final Memory: 17M/204M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project controle-de-ponto: Compilation failure 
[ERROR] /C:/Users/Kennedy/Desktop/controle-de-ponto/src/main/java/br/com/caelum/vraptor/controller/IndexController.java:[37,16] cannot find symbol 
[ERROR] symbol: method setNome(java.lang.String) 
[ERROR] location: variable usuario of type org.razor.cponto.beans.Usuario 
[ERROR] -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 
+1

Konnten Sie spezifischer als "es hat nicht funktioniert" sein könnte funktionieren? Was war der Fehler? – StephaneM

+0

Ich habe meine Frage mit mehr Informationen bearbeitet. –

+0

Die Usuario-Klasse hat die Annotation @Data. Und das setNome wird von ihm generiert. –

Antwort

4

Dies sollte funktionieren wie es ist und hat nichts mit IntelliJ Idee zu tun. Aber ich würde:

  • sicherstellen, dass die @Data Anmerkung ist die lombok eines
  • die Repository Definition entfernen (Maven zentraler ist in Ordnung)
  • verwenden eine aktuelle lombok Version (1.16.0zum Zeitpunkt des Schreibens)
  • Wiederaufbau (mvn clean package)

ich denke, die lombok jar nicht von maven in Ihrem Fall oder tha gefunden Vielleicht haben Sie noch eine @Data.

+0

Thx! Sieht aus wie war die Version, ich habe nicht gesehen, dass ich eine alte Version benutzt habe. Schande über mich, haha. –

+0

Es ist wahrscheinlicher, das Repo zu sein: Durchsuchen http://projectlombok.org/mavenrepo/ und Sie werden sehen, es nicht wie ein Maven Repo sieht. –

+0

mvn sauberes Paket und dann Entfernen der alten WAR-Datei. Ersetzen durch Neues. Und dann nach der Bereitstellung. Bazinga: D +1 – Nabin

-1

Sie benötigen lombok Plugin hinzufügen:

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.projectlombok</groupId> 
     <artifactId>lombok-maven-plugin</artifactId> 
     <version>1.16.8.0</version> 
     <executions> 
     <execution> 
      <phase>generate-sources</phase> 
      <goals> 
      <goal>delombok</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 
+0

nein, das ist die Lombok Anmerkungen mit äquivalenten Quellcode – aliopi

13

Diese

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.6.0</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
       <annotationProcessorPaths> 
        <path> 
         <groupId>org.projectlombok</groupId> 
         <artifactId>lombok</artifactId> 
         <version>1.16.12</version> 
        </path>       
       </annotationProcessorPaths> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
+1

Dank für den Ersatz, hat mich Stunden und Ihre Lösung es fixiert. Arbeiten mit 'Maven-Compiler-plugin'' 3.6.2' und '' lombok' 1.16.16' – tehCivilian

Verwandte Themen