Over a million developers have joined DZone.

IntelliJ IDEA 2018.1 EAP: Inline External Annotations and Java Compiler Enhancements

DZone's Guide to

IntelliJ IDEA 2018.1 EAP: Inline External Annotations and Java Compiler Enhancements

See what's changing in the latest IntelliJ IDEA EAP build, including enhancements to external annotations and the cross-compilation.

· Java Zone ·
Free Resource

Take 60 minutes to understand the Power of the Actor Model with "Designing Reactive Systems: The Role Of Actors In Distributed Architecture". Brought to you in partnership with Lightbend.

A new IntelliJ IDEA 2018.1 EAP build is here now and it’s ready for your assessment! Download the latest build from our website, or update via the Toolbox App.

As you may already know, IntelliJ IDEA provides an ability to annotate your code via annotations.xml files, which are stored outside of your source code. These external annotations are especially useful when direct annotation of the source code is not possible (library classes). IntelliJ IDEA shows the icon in the gutter near the externally annotated code. With the upcoming IntelliJ IDEA 2018.1, this functionality has been extended, and now the IDE shows these external annotations inline in your code.


IntelliJ IDEA automatically inferences the @NotNull or @Nullable annotations and places the gutter icon near the inferred annotation. Starting with the latest EAP, the IDE provides the ability to show those right in your source code.


This option is disabled by default. To start using the new functionality, please enable the Show inferred annotations inline check-box in the Preferences | Editor | General | Appearance.


When there is a choice of more than just one annotation to add, the IDE now groups all annotation suggestions under the submenu.


The constant conditions and exceptions inspection now alerts you whenever nullable values are assigned to non-annotated fields.


To start using this functionality, go to the Preferences | Editor | Inspections | Probable bugs | Constant Conditions & exceptions and enable the check-box Suggest @Nullable annotation for methods/fields/parameters where nullable values are used.


Also, the Redundant Collection operation inspection has been updated and now the IDE advises you to simplify a call to Collections.sort(Arrays.asList(x)). It also provides a handy quick-fix to simplify it.


Java Compiler

A new Use --release option for cross-compilation (Java 9 and later) check-box has appeared in the Preferences | Build, Execution, Deployment | Compiler | Java Compiler. The option is enabled by default. IntelliJ IDEA deduces from project settings when cross-compilation is needed and automatically makes use of the --release compiler option for Java 9. If you need to use the --source and --target options with Java 9 and link against Java 9 classes at the same time, you can disable the new check-box.


With the latest EAP build, you can also use a specific version of the ECJ compiler if the bundled one does not suit your needs. Go to Preferences | Build, Execution, Deployment | Compiler | Java Compiler and select Eclipse from the Use Compiler dropdown menu. A new field will appear where you can specify the path to the jar package with the needed compiler.

Version Control Systems

We’ve redesigned the Commit Details pane of the Log tab (available only for Git and Mercurial). The pane is now divided into several parts, and the Select All action (Cmd + A / Ctrl +A) independently copies the Commit message, the author or tags, depending on where the cursor is.


The Clone Repository dialogs for Git and GitHub have been merged into one. To log in to your GitHub account, please use the new Log in to GitHub… button.

Screen Shot 2018-02-13 at 19.04.24

After you log in to your GitHub account, the autocompletion for GitHub repositories will be enabled. The IDE makes suggestions based on the list of the available repositories.

Screen Shot 2018-02-13 at 19.21.47

Project Configuration

IntelliJ IDEA now provides a new ability to change qualified names for multiple modules at once. This is done via the new Change Module Names… action, from the context menu of the Project Structure dialog.



Starting with this EAP, it’s possible to move the patch download process into the background and continue working in the IDE. Click the new Background button, and you’ll be notified when the patch is downloaded.


Last but not least, the JDK was updated to 1.8.0_152-release-1136-b11 and the following notable fixes were integrated:

  • Unlimited cryptographic policy was enabled by default JRE-638
  • The issue of empty Memory View in Debug session of application running with JRE9 was fixed JRE-641

See the list of changes in the release notes and download the new EAP build. Stay in touch with us on Twitter, and our issue tracker.

Happy developing!

Learn how the Actor model provides a simple but powerful way to design and implement reactive applications that can distribute work across clusters of cores and servers. Brought to you in partnership with Lightbend.

java ,intellij idea 2018.1 ,annotations ,version control

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}