Comment construire un fichier exécutable à partir d'un projet multi-module maven?
Je suis débutant avec maven et ne pas comprendre beaucoup de choses. Je peux construire un simple exécutable jar, mais comment construire multimodule projet maven dans exécutable jar est magique pour moi. Donc, j'ai trois projets.
Parent:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Test</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>Main</module>
<module>Dep</module>
</modules>
</project>
Et deux projets enfants:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>Test</artifactId>
<groupId>org.example</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>Main</artifactId>
<dependencies>
<dependency>
<groupId>org.example</groupId>
<artifactId>Dep</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
et:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>Test</artifactId>
<groupId>org.example</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>Dep</artifactId>
</project>
Module principal a classe Principale avec méthode main(lol)
public class Main {
public static void main(String[] args) {
Hello hello = new Hello();
System.out.println(hello.sayHello());
}
}
Classe Bonjour est définie dans le Dep module. Que dois-je ajouter dans mon pdm pour construire un exécutable jar avec classe Principale du module Principal en tant que point d'entrée?
source d'informationauteur Moses
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de changer votre pom pour artifactid Principal.
Vous devez ajouter le maven-assembly-plugin
Dans la configuration, vous avez une option pour spécifier le mainClass dans le manifeste. Ce devrait être le nom pleinement qualifié de la classe Principale.
Après le démarrage de votre construction sur le projet parent, il doit créer l'exécutable jar dans la cible sous-dossier du module Principal. (un pot avec le nom Main-1.0-SNAPSHOT-jar-with-dependencies.jar a ce que j'ai obtenu)