# New Workstation Setup

### Reference workstation platform <a href="#h.p_ny1wmsufr8tt" id="h.p_ny1wmsufr8tt"></a>

Main development has been done on this platform:

* Java JDK 1.8 - JDK 16
* Any IDE that works well with Maven (IntelliJ and Netbeans have been used)
* [Maven 3.8.x](https://maven.apache.org/) (min 3.2.2 required)
* [Git 2.8.1](https://git-scm.com/) or better
* A [Github](https://github.com) account is required to submit pull requests to merge you code changes into the canonical repository

MacOS 10.x and 11.x was used as the OS, but this is not at all a requirement. Linux and Windows workstations should work - AppVeyor builds are done with Linux and Windows to ensure builds and tests work on both systems.

Any current JDK (1.8 - 16) is capable of building AndHow and using it in an application. **Java JDK8 is a requirement for building a release or snapshot**. The 1.8 requirement is due to [Jigsaw](https://www.google.com/url?q=https%3A%2F%2Fwww.baeldung.com%2Fproject-jigsaw-java-modularity\&sa=D\&sntz=1\&usg=AFQjCNHhhCh7P8KvyaMt1811ND5bBJOQHw), introduced in JDK9, which allows modularization of the JDK and applications. AndHow depends on the JDK tools.jar, which was removed in JDK9 and replaced with the jdk.compile module. The add-modules mechanism of JDK9 forces the built jar to be Java9 compatible - its not possible to compile with JDK9, add a module and build a Java8 compatible jar.

*Fret Not!* The resulting JDK8 AndHow jar can be used in Java9 and newer projects, so this limitation only affects development of AndHow itself, not projects that use it.

**Any IDE can be used to develop AndHow.** Some free options are:

* **Netbeans 12.4**
* **IntelliJ CE**
* **Eclipse**

Netbeans is now an Apache project and works very well with Maven, but is a bit rough. IntelliJ Community Edition is very polished, but struggles with Maven a bit, though, this is mostly an issue when changing module structure. Eclipse... I haven't used for several years.

**Maven 3.5 or newer is a requirement**. Any recent version of Maven will work. Maven provides dependencies and build scripting for this and many other Java projects.

**Git 2.8.1 or newer is a requirement**, though any recent version will work. Git is the source code management system for this project and is in wide use.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.andhowconfig.org/developer-guide/new-workstation-setup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
