Archives mensuelles : juillet 2018

Apache Maven : Comment extraire les valeurs des noeuds XML depuis le fichier pom.xml (en pur batch !)

Si vous êtes un développeur Java vous connaissez très certainement Apache Maven, qui est à peu près l’équivalent de Make mais pour le monde Java.

Il y a quelques jours j’ai dû réfléchir à une méthode d’extraction des valeurs de certains nœuds du fichier pom.xml pour automatiser certaines opérations. Par exemple, j’ai voulu extraire les valeurs de groupId, artifactId et version depuis un projet Maven, c’est-à-dire depuis le fichier pom.xml.

J’ai finalement créé une solution en pur batch Windows pour le faire, et j’ai appelé ce petit outil POM Tool.

Et voici son code source :

Vous devez simplement copier/coller ce code source dans un nouveau fichier texte et l’appeler pomtool.cmd.

L’utilisation est très simple :

Ceci va vous donner la valeur du nœud artifactId du fichier  c:\temp\my-maven-project\pom.xml !

Bien entendu vous pouvez appeler POM Tool depuis un autre fichier batch, par exemple :

Dans ce cas, la variable %PROJECT_NAME% contiendra la sortie du programme POM Tool, dans cet exemple il s’agit de la valeur du nœud description du fichier pom.xml ! 🙂

N’hésitez pas à commenter si vous avez des questions ! 🙂

Installation de DiscJuggler sous Windows 10

Si le monde de la Sega Dreamcast vous est familier, vous connaissez très certainement le format d’image disques CDI. Les images CDI sont la plupart du temps des images amorçables pour la Dreamcast : il suffit simplement de graver l’image disque CDI puis de mettre le CD-R ainsi gravé dans la console pour lancer le jeu.

Les images CDI sont générées avec un outil nommé Padus DiscJuggler. La dernière version (le développement est arrêté) est la version 6.00.1400 sortie en 2007. Aujourd’hui, je voulais installer cet outil sur mon ordinateur Microsoft Windows 10 Pro x64 Update 1803, mais malheureusement, impossible de l’installer, j’ai systématiquement ce message qui s’affiche :

You need to reboot your system.

C’est évidemment ce que j’ai fait. J’ai redémarré 3 fois mais rien à faire : ce message s’affiche toujours et le logiciel ne s’installe pas.

Après avoir désassemblé l’exécutable, le problème est tout simple. Il est causé par la présence de valeurs dans le Registre de Windows sous la clef RunOnce. Puisque DiscJuggler est un programme 32-bits, il faut donc vérifier si des entrées sont présentes à ces endroits :

Donc effectivement dans mon cas j’avais bien des valeurs dans les clefs ci-dessus :

Une valeur est présente dans la clef RunOnce

En théorie, il suffit alors de redémarrer l’ordinateur pour que les clefs RunOnce soient vidées automatiquement de leurs valeurs, en effet, les programmes présents dans ces clefs sont en théorie exécutés une seule fois puis ces valeurs sont supprimées (dans la capture d’écran, la valeur ici se nomme PreRun). Mais dans mon cas, rien n’y fait, la clef RunOnce contient toujours quelque chose : ce fameux programme PreRun de Gigabyte ! Cela car je possède effectivement une carte mère Gigabyte et j’ai par conséquent installé certains outils fournis avec ma carte mère. Même en la supprimant à la main (ne pas oublier de lancer regedit en mode Administrateur pour le faire), elle revient toujours automatiquement (il suffit de faire F5 pour la voir réapparaitre au bout de quelques secondes…). Donc l’installation de DiscJuggler affiche toujours You need to reboot your system.

Dans mon cas, il suffit simplement d’arrêter le service GIGABYTE Adjust pour que la valeur  PreRun ne soit pas recréée le temps d’installer DiscJuggler.

Arrêt du service GIGABYTE Adjust

Une fois ceci fait, l’installation peut se faire :

Installation de Padus DiscJuggler 6.00.1400 sous Windows 10

Et cerise sur le gâteau, le programme fonctionne très bien sous Windows 10 ! 🙂