Section courante

A propos

Section administrative du site

Utilisation des bibliothèques

Clojure permet le chargement de code et le suivi des dépendances grâce à son système de bibliothèques («lib»). Une bibliothèque est une unité nommée de code source Clojure, contenue dans une ressource Java du classpath. Elle fournit généralement l'ensemble des définitions constituant un espace de noms Clojure.

Conventions relatives aux bibliothèques

Clojure définit des conventions pour nommer et structurer les bibliothèques :

Clojure garantit que si l'appel à «ns» s'achève sans exception, les dépendances déclarées sont satisfaites et les fonctionnalités qu'elles offrent sont disponibles.

Exemple de bibliothèque

Une bibliothèque simple :

  1. (ns com.my-company.clojure.examples.my-utils
  2.   (:import java.util.Date)
  3.   (:use [clojure.string :only (join)])
  4.   (:require [clojure.java.io :as jio]))

Listes de préfixes

Il est fréquent qu'une bibliothèque dépende de plusieurs autres bibliothèques dont les noms complets partagent un préfixe commun. Lors des appels à `require` et `use` (et dans les clauses `:require` et `:use` d'une forme `ns`), le préfixe commun peut être extrait et fourni une seule fois grâce à une liste de préfixes. Par exemple, ces deux formes sont équivalentes :

  1. (require 'clojure.contrib.def 'clojure.contrib.except 'clojure.contrib.sql)
  2. (require '(clojure.contrib def except sql))

Fonctions associées

Catégorie Fonctions
Création d'un espace de noms ns
S'assurer qu'une bibliothèque est chargée require use
Liste des bibliothèques chargées loaded-libs

Ordre de chargement des bibliothèques

Les bibliothèques peuvent exister sous forme compilée (.class) ou sous forme de code source (.clj ou .cljc). Il est possible que plusieurs de ces fichiers soient présents dans le classpath. Le chargement de la bibliothèque se fait selon les règles suivantes :

La deuxième règle permet à un auteur de bibliothèque de fournir à la fois une définition commune portable d'une bibliothèque et des bibliothèques spécifiques à la plateforme remplaçant la version portable pour effectuer une opération tirant parti de la plateforme hôte.



Dernière mise à jour : Lundi, le 2 février 2026