NUTS
Le gestionnaire de packages Java
A propos
NUTS veut dire Network Updatable Things Services tool et est un gestionnaire de packages portable pour Java (principalement) qui gère les artefacts distants, installe ces artefacts sur la machine actuelle et exécute ces artefacts en cas de besoin. NUTS résout le problème fatjar en déléguant la résolution des dépendances au moment où l'application doit être exécutée et simplifie le processus de packaging tout en étant transparent pour le processus de développement. En fait, NUTS utilise les maven pom descriptors  pour résoudre les dépendances lorsque l'artefact est installé sur la machine cible, et il peut également utiliser d'autres types de descriptors pour d'autres types de packages.
Artifacts NUTS
nuts artifacts are stored into repositories. A repository may be local for storing local artifacts or remote for accessing remote artifacts (good examples are remote maven repositories). It may also be a proxy repository so that remote artifacts are fetched and cached locally to save network resources.
Un outil indispensable
nuts is a swiss army knife tool as it acts like (and supports) maven build tool to have an abstract view of the artifacts dependency and like npm and pip language package managers to install and uninstall artifacts allowing multiple versions of the very same artifact to be installed. nuts is not exclusive for Java/Scala/Kotlin and other Java Platform Languages, by design it supports multiple artifact formats other than jars and wars and is able to select the appropriate artifacts and dependencies according to the current OS, architecture and even Desktop Environment.
Fonctionnalités principales
No Fat Jar
Developers, forget about big jars, uber jars and fats jars hassle. You do not need to bother about packaging your dependencies along with your application.
Any application, All applications
install any java application with a simple `nuts install your-package`. dependencies are shared across all installed applications and you still can install multiple versions of the same application.
Automate your operations
Take advantage of the Nuts toolbox that offers GNU binutils equivalent tools (bash,ls, cp, and more), and extend them to support json and xml outputs to help automation.
FAQs principales
What does Nuts mean and why ?
NUTS stands for "Network Updatable Things Services". It helps managing things (artifacts of any type, not only java). The Name also helps depicting another idea : nuts is a good companion and complement to Maven tool. The word maven (MAY-vin), from Yiddish, means a super-enthusiastic expert/fan/connoisseur/Wizard. And where wizards are, fools and nuts must be. nuts is the foolish tool to support the deployment and not the build. Hence the name.
Does nuts support only jar packaging ?
Not only. nuts supports all types of packaging, particularly, those supported by maven. This includes pom , jar , maven-plugin , ejb , war , ear , rar. nuts is also intended to support any "thing" including "exe" ,"dll", "so", "zip" files, etc. nuts differs from maven as it defines other properties to the artifact descriptor (aka pom in maven) : os (operating system), arch (hardware architecture), osdist (relevant for linux for instance : opensuse, ubuntu) and platform (relevant to vm platforms like java vm, dotnet clr, etc). Such properties are queried to download the most appropriate binaries for the the current environment.
Why not maven ?
or, "Why do we need a package manager for Java. Isn't Maven enough?". Please read Nuts Introduction, Why and What for. In few words maven manages dependencies to build applications, nuts uses maven dependencies system to install applications.
How can I make my application "Nuts aware" ?
If by nuts aware you mean that you would download your application and run it using nuts, then you just need to create the application using maven and deploy your application to the public maven central. Nothing really special is to be done from your side. You do not have to use plugins like 'maven-assembly-plugin' and 'maven-shade-plugin' to include your dependencies. Or, you can also use NAF (nuts Application Framework) to make your application full featured "Nuts aware" application.
Actualités NUTS
  • Nuts 0.8.3 est sorti !
    Nuts adopte Docusaurus

    Nous sommes ravis d'annoncer la sortie de la version 0.8.3 de #nuts, le gestionnaire de packages open source java destiné à être compatible avec #devops. Regardez cet emplacement (au dépôt github) pour une petite introduction
    /documentation/presentations/2021-a/nuts-presentation-2021-a.pdf
    
    soyez le premier à commenter !
Restez à jour

Abonnez-vous à notre newsletter pour recevoir nos actualités et mises à jour.