Build with IntelliJ IDEA
Assumptions
- You have fulfilled all the dev pre-requisites.
- Source code is located in
~/Asqatasun
(i.e. you made yourgit clone
from your$HOME
).
Import project
In IntelliJ, choose File
> New
> Project from existing sources...
.
Then you need to import project from external model, and choose Maven.
If you don’t do that, you won’t be able to build/run Asqatasun.
Configure JDK
(That might sound stupid as you do already have a JDK, but we want to ensure you have the correct one, with the correct configuration :) )
- Go to
File
>Project Structure
or doCTRL
+ALT
+SHIFT
+S
- Under Platform Settings, click SDK
- Click on the plus (
+
) icon, select Download SDK - Choose Version
17
, VendorEclipse Temurin (AdoptOpenJDK HotSpot)
and validate - Ensure the select JDK is
temurin-17
.
(Re)Load Maven project
Reloading “all Maven projects” is needed to automatically discover and configure SpringBoot projects. To do so:
press SHIFT
+SHIFT
, type in reload all maven projects
and validate.
After the Maven projects are reloaded and indexed, IntelliJ offers the ability to use Services to manage Spring Boot run configuration: accept this.
A good way to verify the projects are correctly reloaded is to go to File
> Project Structure
or
CTRL
+ALT
+SHIFT
+S
. In the Problems section, you should have zero entry.
Configure Maven Wrapper
You must configure the project to leverage Maven Wrapper. To do so:
- get to
File
>Settings...
(CTRL-ALT-S
), - navigate to
Build, Execution, Deployment
>Build Tools
>Maven
, - set parameter
Maven home path
to valueUse Maven wrapper
.
Here is a screenshot from IntelliJ 2021.3.2:
Configure character encoding
- Get to
File
>Settings
(CTRL
+ALT
+S
) - Go into Editor > File encodings
- For the key Default encoding for properties file:, set value UTF-8
Edit Run/Debug configurations > Asqatasun Webapp
From projet root, do:
cd web-app/asqatasun-web-app/src/main/resources
ln -s ../webapp/public public
(More information on this in issue #639)
Get to Run
> Edit configurations...
. Under Spring Boot, click on AsqatasunWebappApplication
.
Add the following values:
- VM Options:
-Dwebdriver.gecko.driver=/opt/geckodriver -Djdbc.url="jdbc:mysql://localhost:3307/asqatasun"
- Working directory:
$MODULE_WORKING_DIR$
Here is a screenshot from IntelliJ 2021.3.2:
Note: in IntelliJ 2021.3.3, this dialog has slightly changed; to get Working directory, you should click on Modify options, then tick Working directory to make it appear in the main dialog.
Edit Run/Debug configurations > Asqatasun Server
Get to Run
> Edit configurations...
. Under Spring Boot, click on AsqatasunServer
.
Add the following values:
- VM Options:
-Dwebdriver.gecko.driver=/opt/geckodriver -Djdbc.url="jdbc:mysql://localhost:3307/asqatasun"
Configuration of Spring Boot projects
Source code holds many projects but two of them are real entrypoints:
- Asqatasun Webapp: the historical Asqatasun with the engine and the web-application.
- Asqatasun Server: added since v5.0.0, it holds the engine and the REST API.
In a Spring Boot project, all the configuration lies in application.yml
. Here are the respective paths:
- Webapp:
web-app/asqatasun-web-app/src/main/resources/application.yml
- Server:
server/asqatasun-server/src/main/resources/application.yml
You can override configuration with arguments passed as VM options. Get inspired by what we do in Build CLI, or how we do in production installation using systemd units + a local configuration file.
Globally, configuration can be overridden thanks to Spring Boot Externalized configuration .
Execute
Run
>Run..
and chooseAsqatasunWebappApplication
orAsqatasunServer
- Then browse http://localhost:8080/ and connect with credentials:
- login:
admin@asqatasun.org
- password:
myAsqaPassword
- login:
contractId
from 0
to 1
or your request will end in a 500 error.