Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Lombok and Maven

Tags:

People also ask

What is Lombok in maven?

Lombok is used to reduce boilerplate code for model/data objects, e.g., it can generate getters and setters for those object automatically by using Lombok annotations. The easiest way is to use the @Data annotation.

Why is Lombok dependency provided?

To set up lombok with any build tool, you have to specify that the lombok dependency is required to compile your source code, but does not need to be present when running/testing/jarring/otherwise deploying your code. Generally this is called a 'provided' dependency.

What is Lombok?

What is Lombok. Project Lombok (from now on, Lombok) is an annotation-based Java library that allows you to reduce boilerplate code. Lombok offers various annotations aimed at replacing Java code that is well known for being boilerplate, repetitive, or tedious to write.


I'm trying to use Lombok with Maven and VRaptor on IntelliJ but it doesn't work.

I already read some info in stackoverflow but none solved my problem, i already enabled the Annotation Processor in Intellij but still nothing.

I tryied to compile it from command-line too (Windows) and didn't work.

I also tryed to create another project without maven and add the library, create some classes for test and it works, compile and run perfectly.

Any help?

The project has only 2 class, 1 entity and 1 controller

Here is my 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> 

Error when i try to compile:

[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