Build Automatically and Domino Designer (on Eclipse)

Eclipse has a Build Automatically menu option. When Domino Designer was ported to Eclipse in v8.5, this option has the Eclipse default on being switched on.

What does it do?

This runs whatever the build process is for the current project type. In an Eclipse Java project, this will pull down Java dependencies from Maven, source files required for content assist etc, and compile the project.

For Java projects this compilation process takes .java files on your local filesystem and compiles to bytecode in .class files also on your local filesystem.

But I don’t do Java, why do I care?

Because a build process also happens for your NSF.

Not for LotusScript, that happens when you save a Script Library, Agent, View, Form etc.

Not for Java agents, that only happens when you save the agent.

But it does happen for XPages. Whenever you save an XPage, Custom Control, or Java class. For XPage and Custom Control design elements “compile” means “take the XML, run a process to generate a .java design element file and compile it to a .class design element file”.

Moreover, because the design is changing, all affected viewScoped variables become invalid, because the Java class backing them has changed. This could affect any developer using the application.

And if you’re modifying an NSF on a server, all these changes need pushing to the server as well. And the same process may also happen if another developer modifies an XPage, Custom Control or Java class on the server.

So best practice is to switch off Build Automatically, especially if you’re working on an NSF on a remote server. It’s also why best practice is to develop against a local Domino server.