⚠ Mémo technique (crade mais bien utile) !

En cas d'erreur lors d'une étape, voir la section des erreurs, il se peut que le problème ait une solution connue.
Note: la documentation officielle ici et sont toujours importantes à suivre aussi.


IDE

Petit rapel perso : quelques combinaisons de touches pratiques.

VSCodium Eclipse
CTRL + MAJ + O CTRL + MAJ + R

Java

Chaque version de Nuxeo requiert une version spécifique de Java. Il faudra donc jongler entre différentes versions sur l'OS.
Pour lister les versions installées :

$ update-java-alternatives --list





Nuxeo 11.x (master)


Prérequis, seulement pour Web-UI :
# Install dart
$ wget "https://storage.googleapis.com/dart-archive/channels/stable/release/1.23.0/sdk/dartsdk-linux-x64-release.zip"
$ unzip dartsdk-linux-x64-release.zip -d $HOME
$ mv ~/dart-sdk ~/.dart-sdk
$ export PATH="$PATH:$HOME/.dart-sdk/bin"
$ echo 'export PATH="$PATH:$HOME/.dart-sdk/bin"' >> ~/.profile

# Install nmp packages
$ npm install -g bower grunt gulp



Il faut être connecté au VPN avant d'effectuer ces actions :
$ sudo update-java-alternatives --set /usr/lib/jvm/java-1.11.0-openjdk-amd64

$ git clone git@github.com:nuxeo/nuxeo.git nuxeo
$ cd nuxeo

$ mvn -DskipTests install

$ mvn eclipse:clean eclipse:eclipse \
    -nsu \
    -T6 \
    -Declipse.workspace=$HOME/.workspace/nuxeo-11.x/ \
    -DdownloadSources=true \
    -DdownloadJavadocs=true \
    -Dnuxeo.skip.enforcer=true



Pour l'import dans Eclipse :
  1. File > Import > General > « Projects from Folder or Archive » ;
  2. sélectionner le dossier racine ;
  3. cocher « Search for nested projects » ;
  4. cliquer en Finish.




Nuxeo 10.10


Prérequis :
# Install dart
$ wget "https://storage.googleapis.com/dart-archive/channels/stable/release/1.23.0/sdk/dartsdk-linux-x64-release.zip"
$ unzip dartsdk-linux-x64-release.zip -d $HOME
$ mv ~/dart-sdk ~/.dart-sdk
$ export PATH="$PATH:$HOME/.dart-sdk/bin"
$ echo 'export PATH="$PATH:$HOME/.dart-sdk/bin"' >> ~/.profile

# Install nmp packages
$ npm install -g bower grunt gulp



$ sudo update-java-alternatives --set /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64
# or
# sudo update-java-alternatives --set /usr/lib/jvm/java-1.8.0-openjdk-amd64

$ git clone --branch 10.10 git@github.com:nuxeo/nuxeo.git nuxeo-10.10
$ cd nuxeo-10.10

$ python clone.py 10.10 -a
$ mvn -DskipTests install -Paddons,distrib

$ mvn eclipse:clean eclipse:eclipse \
    -Paddons,distrib \
    -nsu \
    -T0.6C \
    -Declipse.workspace=$HOME/.workspace/nuxeo-10.10/ \
    -DdownloadSources=true \
    -DdownloadJavadocs=true
$ ./fixeclipse



Pour l'import dans Eclipse :
  1. File > Import > General > « Projects from Folder or Archive » ;
  2. sélectionner le dossier racine ;
  3. cocher « Search for nested projects » ;
  4. cliquer en Finish.




Nuxeo 9.10


Prérequis :
# Install dart
$ wget "https://storage.googleapis.com/dart-archive/channels/stable/release/1.23.0/sdk/dartsdk-linux-x64-release.zip"
$ unzip dartsdk-linux-x64-release.zip -d $HOME
$ mv ~/dart-sdk ~/.dart-sdk
$ export PATH="$PATH:$HOME/.dart-sdk/bin"
$ echo 'export PATH="$PATH:$HOME/.dart-sdk/bin"' >> ~/.profile

# Install nmp packages
$ npm install -g bower grunt gulp



$ sudo update-java-alternatives --set /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64
# or
# sudo update-java-alternatives --set /usr/lib/jvm/java-1.8.0-openjdk-amd64

$ git clone --branch 9.10 git@github.com:nuxeo/nuxeo.git nuxeo-9.10
$ cd nuxeo-9.10

$ python clone.py 9.10 -a
$ mvn -DskipTests install -Paddons,distrib

$ mvn eclipse:clean eclipse:eclipse \
    -Paddons,distrib \
    -nsu \
    -T0.6C \
    -Declipse.workspace=$HOME/.workspace/nuxeo-9.10/ \
    -DdownloadSources=true \
    -DdownloadJavadocs=true
$ ./fixeclipse



Pour l'import dans Eclipse :
  1. File > Import > General > « Projects from Folder or Archive » ;
  2. sélectionner le dossier racine ;
  3. cocher « Search for nested projects » ;
  4. cliquer en Finish.




Erreurs


Outdated Snaphot


[FATAL] Non-resolvable parent POM for org.nuxeo.ecm.platform:nuxeo-business-days-management:[unknown-version]: Could not find artifact org.nuxeo:nuxeo-addons-parent:pom:10.10-HF27-SNAPSHOT in public-snapshot (http://maven.nuxeo.org/nexus/content/groups/public-snapshot) and 'parent.relativePath' points at wrong local POM @ line 4, column 11


La branche n'est pas à jour avec le dépôt distant (par exemple lorqu'un HotFix est sorti entre temps). Pour corriger le problème (disons que nous sommes sur une branche dérivée de 10.10 et avons 2 commits pour notre patch) :
$ git reset --hard HEAD~2
$ git pull origin 10.10
$ git cherry-pick <SHA1>
$ git cherry-pick <SHA2>





JDK 8


No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?



Il faut installer le JDK 8. Pour Debian 10 (buster) :
$ wget -qO - "https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public" | sudo apt-key add -
$ sudo echo "deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb buster main\n" > "/etc/apt/sources.list.d/openjdk.list"
$ sudo apt update
$ sudo apt install adoptopenjdk-8-hotspot
$ sudo update-java-alternatives --set /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64





Connect : Not authorized


[ERROR] Failed to execute goal on project nuxeo-template-rendering-samples: Could not resolve dependencies for project org.nuxeo.template.rendering:nuxeo-template-rendering-samples:jar:9.10-HF44-SNAPSHOT: Failed to collect dependencies at nuxeo-studio:template-module-demo:jar:9.3.0: Failed to read artifact descriptor for nuxeo-studio:template-module-demo:jar:9.3.0: Could not transfer artifact nuxeo-studio:template-module-demo:pom:9.3.0 from/to nuxeo-studio (https://connect.nuxeo.com/nuxeo/site/studio/maven): Not authorized -> [Help 1]



  • Générer un token.

  • Ajouter dans $HOME/.m2/settings.xml :
    <?xml version="1.0"?>
    <settings>
        <servers>
            <server>
                <id>nuxeo-studio</id>
                <username>****</username>
                <password>$TOKEN</password>
            </server>
        </servers>
    </settings>
    





Nexus : Not authorized


[ERROR] Failed to execute goal on project nuxeo-runtime-tomcat-adapter: Could not resolve dependencies for project org.nuxeo.lib.runtime:nuxeo-runtime-tomcat-adapter:jar:10.10-HF26-SNAPSHOT: Could not transfer artifact org.nuxeo.lib.runtime:nuxeo-runtime-launcher:jar:10.10-HF26-SNAPSHOT from/to hotfix-snapshots (https://maven.nuxeo.org/nexus/content/repositories/hotfix-snapshots): Not authorized -> [Help 1]



  • Générer un token.

  • Ajouter dans $HOME/.m2/settings.xml :
    <?xml version="1.0"?>
    <settings>
        <servers>
            <server>
                <id>hotfix-releases</id>
                <username>****</username>
                <password>$TOKEN</password>
            </server>
            <server>
                <id>hotfix-snapshots</id>
                <username>****</username>
                <password>$TOKEN</password>
            </server>
            <server>
                <id>maven-internal</id>
                <username>****</username>
                <password>$TOKEN</password>
            </server>
        </servers>
    </settings>
    





Eclipse : Missing required Java project


Après la première importation, il y a ce genre d'erreurs :


Prenons l'exemple du project "nuxeo-core-storage-sql". On peut voir qu'il est marqué comme un project Maven (M) et non pas Java (J) :


Résolution :
1) Supprimer le project.
2) Réimporter dans Eclipse :
  1. File > Import > General > « Existing Projects into Workspace » ;
  2. sélectionner le dossier du projet ;
  3. cocher « Search for nested projects » ;
  4. cliquer en Finish.




Eclipse : Type mismatch


Une fois les problèmes de [|] corrigés, ceux-ci riquent d'apparaître :


Résolution :
1) Faire un clic droit sur le projet "nuxeo-runtime-test > Properties > « Java Build Path ».
2) Dans l'onglet Sources, les 2 dernières doivent avoir « Contains test sources: Yes ». Exemple :




Historique