⚠ 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 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.

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 11.x (master)

La version actuelle (2020-07-17) est 11.2.

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

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 -Pdistrib

$ mvn eclipse:clean eclipse:eclipse \
    -Pdistrib \
    -nsu \
    -T0.6C \
    -Declipse.workspace=$HOME/.workspace/nuxeo-11.2/ \
    -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>
    

Historique