Pre-requisites for development
We describe how to create a developer environment to build Asqatasun locally on an Ubuntu 22.04 / Linux Mint 21
Pre-requisites
- Maven 3.8
- JDK 17
- MariaDB 10.6
- Firefox + Gecko Driver
JDK 17
sudo apt install openjdk-17-jre
sudo update-alternatives --config java
java -version
Define JAVA_HOME
Define JAVA_HOME
as the path indicated by update-java-alternatives -l
for the version of Java you use.
For instance, if you have:
% update-java-alternatives -l
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
java-1.17.0-openjdk-amd64 1711 /usr/lib/jvm/java-1.17.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
… and you use Java 17, then you should define JAVA_HOME this way:
export JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64 # path indicated for Java 17 by "update-java-alternatives -l"
To avoid define it at each boot, you may add it to your profile. For ZSH users, it can be:
echo "export JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64" >> ~/.zshrc
Maven
You don’t have to download Maven, as it is embedded in the project thanks to Maven Wrapper. To use Maven, get to the
root of this repository, and use ./mvnw
(instead of mvn
).
Firefox + Gecko Driver
FIREFOX_VERSION="102.8.0esr"
GECKODRIVER_VERSION="v0.32.2"
FIREFOX_URL_PREFIX="https://download-installer.cdn.mozilla.net/pub/firefox/releases/"
GECKODRIVER_URL_PREFIX="https://github.com/mozilla/geckodriver/releases/download/"
FIREFOX_URL="${FIREFOX_URL_PREFIX}${FIREFOX_VERSION}/linux-x86_64/en-US/firefox-${FIREFOX_VERSION}.tar.bz2"
GECKODRIVER_URL="${GECKODRIVER_URL_PREFIX}${GECKODRIVER_VERSION}/geckodriver-${GECKODRIVER_VERSION}-linux64.tar.gz"
cd /opt
sudo wget "${FIREFOX_URL}"
sudo wget "${GECKODRIVER_URL}"
sudo tar xf "firefox-${FIREFOX_VERSION}.tar.bz2"
sudo tar xf "geckodriver-${GECKODRIVER_VERSION}-linux64.tar.gz"
Notes:
- It is important to stick to the specified version of Firefox.
- Firefox version and GeckoDriver version are strongly tied: see table on GeckoDriver documentation
MariaDB
We decide to use a Docker container
docker run \
--name mysql \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
-e MYSQL_USER=asqatasunDatabaseUserLogin \
-e MYSQL_PASSWORD=asqatasunDatabaseUserP4ssword \
-e MYSQL_DATABASE=asqatasun \
-p 3307:3306 \
-d mariadb:10.6
Notes:
- In this snippet, we choose to launch Mysql on port
3307
in case another Mysql is already running on3306
- The values
asqatasunDatabaseUserLogin
,asqatasunDatabaseUserP4ssword
andasqatasun
are the default ones and defined inapplication.yml
(webapp) andapplication.yml
(API)
Get Asqatasun source code
git clone https://github.com/Asqatasun/Asqatasun.git
cd Asqatasun