> For the complete documentation index, see [llms.txt](https://docs.poja.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.poja.io/troubleshooting/code-is-incorrect-and-will-not-compile-says-my-ide.md).

# Code is incorrect and will not compile, says my IDE

## The bug

Your favorite IDE, such as [IntelliJ](https://www.jetbrains.com/idea/) or [Eclipse](https://eclipseide.org/) or [VS Code](https://code.visualstudio.com/), says that the code generated by Poja is ill-formed and thus **will not compile**.

For example, if you **activate the File Storage capabilities** of Poja, it will generate the `BucketComponent` class that allows you to upload and download files to/from a cloud bucket.

<figure><img src="/files/kXgwaFYX0QXrqT4exVdP" alt=""><figcaption></figcaption></figure>

Here, the attribute `bucketConf` is marked final. Yet it is not initialized in any constructor in the source code. Hence, your IDE yells at you and says it will not compile.

## The solution

Poja uses [Lombok](https://projectlombok.org/) to reduce boilerplate code. For example, the `@AllArgsConstructor` annotation mentioned in above code snippet asks Lombok to generate a constructor that initializes all final arguments of the `BucketComponent` class.

Now the subtleties is that Lombok generates its code **during compilation**. This means, the source code is incorrect with respect to the plain Java syntax, and will only become correct once Lombok finished generating its part at compile time.

In order to tell your IDE to not worry about that incorrectness, as it will be fixed later at compile time, you have to **install the Lombok plugin**:

* [Configuring IntelliJ](https://projectlombok.org/setup/intellij)
* [Configuring Eclipse](https://projectlombok.org/setup/eclipse)
* [Configuring VS Code](https://projectlombok.org/setup/vscode)

The [Lombok](https://projectlombok.org/) website offers support for various IDE if yours is not listed above.

##
