# Build

To build your project, you need to add and run the build command.

{% hint style="info" %}
C, C++, C#, JAVA, Go, and Arduino projects must be built after you write the code to get an executable.
{% endhint %}

### Add and run Build commands

This guide will show you how to add or run build commands.

* Click **\[Add build command]** by hovering your mouse cursor over the wrench icon in the top-right toolbar.

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

* Add a default build command by right-clicking the Build item on the \[Commands] tab. Default build commands support C, C++, Java, JSP, Maven, Gradle, Go, .Net, C#, Swift, and Arduino (UNO, NANO).

<figure><img src="/files/dmo93erxlUHZGscZT5yG" alt="" width="337"><figcaption></figcaption></figure>

* Run the build command you added by double-clicking the Build Items sub-element of the \[Commands] tab, and then click the **\[Run]** button at the bottom right of the command window.

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

* Right-click a file and click **\[Build] > \[Build selected file]** to build and run the selected file.

<figure><img src="/files/zgcHyK9knssOBHB2MfmY" alt="" width="563"><figcaption></figcaption></figure>

The following is a list of extensions that can be built with a selected file build.

* .c, .cpp, .cxx
* .cs
* .go
* .java
* .jsp
* pom.xml
* .swift
* .gradle
* .kt
* .scala
* .m

### Build and run setting

You can set new options when building and running builds.&#x20;

1. To set build options, click **\[Project] > \[Properties].**

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

2. The Project Properties pop-up window opens, showing a list of projects under Build/Run Settings. Depending on the type of plugin (programming language), the items that can be set appear. For normal build/run, the path to each item must exist in the actual project. Also, the paths you set below are all relative to the project root.

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

### Build settings for each stack

All changes can be reverted to the initial state by pressing the Revert to Default Settings button. You can apply your custom build/run options with the Apply button. The options are also applied when you press the OK button. If you don't want to apply the changes after making them, press Cancel or revert to the default settings and press OK.

[C/C++](/ko/goormide/getting-started/build/c-c++.md)

[JAVA](/ko/goormide/getting-started/build/java.md)

[Python](/ko/goormide/getting-started/build/python.md)

[Ruby](/ko/goormide/getting-started/build/ruby.md)

[JSP](/ko/goormide/getting-started/build/jsp.md)

[PHP](/ko/goormide/getting-started/build/php.md)

[.NET](/ko/goormide/getting-started/build/.net.md)

[Spring-Maven](/ko/goormide/getting-started/build/spring-maven.md)


---

# 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://help.goorm.io/en/goormide/getting-started/build.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.
