problème avec maven sur le module swing-generated
Bonjour, En attendant les réponses à mon message au sujet des règles métier des Components d'un EA, j'ai un autre problème. J'essaie de faire un projet maven qui dépend du votre, mais j'ai de gros soucis avec le module swing-generated. En effet, si je crée un projet minimal avec le fichier POM ci-joint et le code suivant : --------------8<------------------------------------------------ package fr.cemagref.simexplorer; import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerMainUI; public class App { public static void main(String[] args) { SimExplorerMainUI mainUI = SimExplorerMainUI.getUI(); System.out.println("Hello World!"); } } --------------------------------------->8------------------------ J'obtiens : $mvn -o --debug compile + Error stacktraces are turned on. Maven version: 2.0.9 Java version: 1.6.0_06 [...] [DEBUG] Classpath: [...] [DEBUG] /home/dumoulin/.m2/simexplorer-is/simexplorer-is-swing-generated/0.1- SNAPSHOT/simexplorer-is-swing-generated-0.1-SNAPSHOT.jar [...] org.apache.maven.BuildFailureException: Compilation failure /home/dumoulin/tmp/simexplorer-is- test/src/main/java/fr/cemagref/simexplorer/App.java:[8,52] cannot access SimExplorerUI class file for SimExplorerUI not found SimExplorerMainUI mainUI = SimExplorerMainUI.getUI(); [...] Alors que : $jar tf /home/dumoulin/.m2/simexplorer-is/simexplorer-is-swing-generated/0.1- SNAPSHOT/simexplorer-is-swing-generated-0.1-SNAPSHOT.jar | grep SimExplorerUI donne : fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerUI.class Pouvez-vous m'aider ? Merci -- Nicolas Dumoulin Ingénieur d'études - Cemagref, LISC +33 (0)4.73.44.07.29 -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel... -------------- section suivante -------------- Une pièce jointe non texte a été nettoyée... Nom: pom.xml Type: application/xml Taille: 1364 octets Desc: non disponible Url: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel... -------------- section suivante -------------- Une pièce jointe non texte a été nettoyée... Nom: non disponible Type: application/pgp-signature Taille: 189 octets Desc: This is a digitally signed message part. Url: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel...
On Wed, 10 Sep 2008 15:23:33 +0200 Nicolas Dumoulin <nicolas.dumoulin at cemagref.fr> wrote:
Bonjour,
En attendant les réponses à mon message au sujet des règles métier des Components d'un EA, j'ai un autre problème. J'essaie de faire un projet maven qui dépend du votre, mais j'ai de gros soucis avec le module swing-generated. En effet, si je crée un projet minimal avec le fichier POM ci-joint et le code suivant : --------------8<------------------------------------------------ package fr.cemagref.simexplorer; import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerMainUI; public class App { public static void main(String[] args) { SimExplorerMainUI mainUI = SimExplorerMainUI.getUI(); System.out.println("Hello World!"); } } --------------------------------------->8------------------------
J'obtiens : $mvn -o --debug compile + Error stacktraces are turned on. Maven version: 2.0.9 Java version: 1.6.0_06 [...] [DEBUG] Classpath: [...] [DEBUG] /home/dumoulin/.m2/simexplorer-is/simexplorer-is-swing-generated/0.1- SNAPSHOT/simexplorer-is-swing-generated-0.1-SNAPSHOT.jar [...] org.apache.maven.BuildFailureException: Compilation failure /home/dumoulin/tmp/simexplorer-is- test/src/main/java/fr/cemagref/simexplorer/App.java:[8,52] cannot access SimExplorerUI class file for SimExplorerUI not found SimExplorerMainUI mainUI = SimExplorerMainUI.getUI(); [...]
Alors que : $jar tf /home/dumoulin/.m2/simexplorer-is/simexplorer-is-swing-generated/0.1- SNAPSHOT/simexplorer-is-swing-generated-0.1-SNAPSHOT.jar | grep SimExplorerUI donne : fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerUI.class
Pouvez-vous m'aider ?
Merci
Oui il faut aussi que ce jar qui contient la classe soit références dans le class-path du jar appelant :) Maven peut faire ça pour toi avec deux plugins : maven-dependency-plugin pour preparer les dependances Example : ou il copie tous les jar de dependances dans target/dependency (le rep par defaut) <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <configuration> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> </execution> </executions> </plugin> Puis le plugin jar qui construit le jar (il est intégré dans le cycle de vie des artifacts jar, mais on le rajoute quand même dans le build pour pouvoir le configurer). <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <mainClass> fr.cemagref.simexplorer.App </mainClass> <addClasspath>true</addClasspath> <addExtensions/> <classpathPrefix> ./dependency/ </classpathPrefix> </manifest> </archive> </configuration> </plugin> Donc en ajoutant les deux plugins dans le <build> de ton pom cela devrait fonctionner. Tu peux vérifier que dans le jar tu as le fichier META-INF/MANIFEST.MF qui contient une entrée Class-Path avec la liste des jar de dépendances. J'espère que je suis clair ? J'ai regardé aussi ton pom et je ne comprends pas trop bien pourquoi tu inclus en dépendance import le pom de simexplorer-is ? en espérant que cela va fonctionner avec l'ajout des deux plugins Cordialement, Tony.
Le mercredi 10 septembre 2008 15:46:12 tony Chemit, vous avez écrit :
J'espère que je suis clair ?
Merci pour cette réponse. Je vais essayer tout de suite.
J'ai regardé aussi ton pom et je ne comprends pas trop bien pourquoi tu inclus en dépendance import le pom de simexplorer-is ?
Parce que j'ai pas encore bien l'habitude de maven2, et que je cherchais désespérément ce que je ne comprenais pas. Merci -- Nicolas Dumoulin Ingénieur d'études - Cemagref, LISC +33 (0)4.73.44.07.29 -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel... -------------- section suivante -------------- Une pièce jointe non texte a été nettoyée... Nom: non disponible Type: application/pgp-signature Taille: 189 octets Desc: This is a digitally signed message part. Url: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel...
Le mercredi 10 septembre 2008 15:46:12 tony Chemit, vous avez écrit :
Donc en ajoutant les deux plugins dans le <build> de ton pom cela devrait fonctionner.
J'ai essayé, mais ça ne marche pas. Je n'ai pas de répertoire dependency qui apparaît dans target, et en lançant mvn avec l'option --debug, le mojo copy- dependencies n'apparaît pas. Je lance "mvn clean compile". Ci-joint mon pom. -- Nicolas Dumoulin Ingénieur d'études - Cemagref, LISC +33 (0)4.73.44.07.29 -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel... -------------- section suivante -------------- Une pièce jointe non texte a été nettoyée... Nom: pom.xml Type: application/xml Taille: 2860 octets Desc: non disponible Url: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel... -------------- section suivante -------------- Une pièce jointe non texte a été nettoyée... Nom: non disponible Type: application/pgp-signature Taille: 189 octets Desc: This is a digitally signed message part. Url: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel...
On Wed, 10 Sep 2008 18:07:01 +0200 Nicolas Dumoulin <nicolas.dumoulin at cemagref.fr> wrote:
Le mercredi 10 septembre 2008 15:46:12 tony Chemit, vous avez écrit :
Donc en ajoutant les deux plugins dans le <build> de ton pom cela devrait fonctionner.
J'ai essayé, mais ça ne marche pas. Je n'ai pas de répertoire dependency qui apparaît dans target, et en lançant mvn avec l'option --debug, le mojo copy- dependencies n'apparaît pas. Je lance "mvn clean compile". Ci-joint mon pom.
C'est un peu normal car si tu regardes dans <execution> du plugin il est indiqué la phase de déclanchement qui est ici package donc pour que tout se passe bien il faut que tu fasses un mvn compile package puis ensuite tu peux lancer un java -jar target/simexplorer-is-test-1.0-SNAPSHOT.jar Tu peux aussi enlever la dependance qui n'a pas raison d'etre sur le pom : <dependency> <groupId>simexplorer-is</groupId> <artifactId>simexplorer-is</artifactId> <version>0.1-SNAPSHOT</version> <type>pom</type> </dependency> car on a jamais de dépendance sur un artifact de type pom. Tony.
Bonjour, Le mercredi 10 septembre 2008 18:55:38 tony Chemit, vous avez écrit :
C'est un peu normal car si tu regardes dans <execution> du plugin il est indiqué la phase de déclanchement qui est ici package
donc pour que tout se passe bien il faut que tu fasses un
mvn compile package
Ça ne marche toujours pas. J'ai essayé de mettre la phase de l'exécution à compile, et ça ne va pas mieux ? J'ai toujours l'erreur de compilation : -----------------8<-------------------------------------------------- /home/dumoulin/tmp/simexplorer-is- test/src/main/java/fr/cemagref/simexplorer/App.java:[8,52] cannot access SimExplorerUI class file for SimExplorerUI not found SimExplorerMainUI mainUI = SimExplorerMainUI.getUI(); /home/dumoulin/tmp/simexplorer-is- test/src/main/java/fr/cemagref/simexplorer/App.java:[8,52] cannot access SimExplorerUI class file for SimExplorerUI not found SimExplorerMainUI mainUI = SimExplorerMainUI.getUI(); ----------------------------------------------------------->8--------------
Tu peux aussi enlever la dependance qui n'a pas raison d'etre sur le pom : <dependency> <groupId>simexplorer-is</groupId> <artifactId>simexplorer-is</artifactId> <version>0.1-SNAPSHOT</version> <type>pom</type> </dependency>
car on a jamais de dépendance sur un artifact de type pom.
Oui, mais sans cette dépendance, j'ai l'erreur : -----------------8<-------------------------------------------------- [INFO] Error building POM (may not be this project's POM). Project ID: null:simexplorer-is-swing:jar:${current.version} Reason: Cannot find parent: simexplorer-is:simexplorer-is for project: null:simexplorer-is-swing:jar:${current.version} for project null:simexplorer- is-swing:jar:${current.version} ----------------------------------------------------------->8-------------- Merci -- Nicolas Dumoulin Ingénieur d'études - Cemagref, LISC +33 (0)4.73.44.07.29 -------------- section suivante -------------- Une pièce jointe non texte a été nettoyée... Nom: non disponible Type: application/pgp-signature Taille: 189 octets Desc: This is a digitally signed message part. Url: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel...
On Thu, 11 Sep 2008 09:29:00 +0200 Nicolas Dumoulin <nicolas.dumoulin at cemagref.fr> wrote:
Bonjour,
Le mercredi 10 septembre 2008 18:55:38 tony Chemit, vous avez écrit :
C'est un peu normal car si tu regardes dans <execution> du plugin il est indiqué la phase de déclanchement qui est ici package
donc pour que tout se passe bien il faut que tu fasses un
mvn compile package
Ça ne marche toujours pas. J'ai essayé de mettre la phase de l'exécution à compile, et ça ne va pas mieux ? Et bien il ne faut pas changer la phase en compile mais bien utilise
mvn compile package Tu peux si tu le souhaites m'envoyer un zip avec tout ton petit projet et je te le ferais fonctionner (enfin j'espère :) ).
J'ai toujours l'erreur de compilation : -----------------8<-------------------------------------------------- /home/dumoulin/tmp/simexplorer-is- test/src/main/java/fr/cemagref/simexplorer/App.java:[8,52] cannot access SimExplorerUI class file for SimExplorerUI not found SimExplorerMainUI mainUI = SimExplorerMainUI.getUI(); /home/dumoulin/tmp/simexplorer-is- test/src/main/java/fr/cemagref/simexplorer/App.java:[8,52] cannot access SimExplorerUI class file for SimExplorerUI not found SimExplorerMainUI mainUI = SimExplorerMainUI.getUI(); ----------------------------------------------------------->8--------------
Tu peux aussi enlever la dependance qui n'a pas raison d'etre sur le pom : <dependency> <groupId>simexplorer-is</groupId> <artifactId>simexplorer-is</artifactId> <version>0.1-SNAPSHOT</version> <type>pom</type> </dependency>
car on a jamais de dépendance sur un artifact de type pom.
Oui, mais sans cette dépendance, j'ai l'erreur : -----------------8<-------------------------------------------------- [INFO] Error building POM (may not be this project's POM).
Project ID: null:simexplorer-is-swing:jar:${current.version}
Reason: Cannot find parent: simexplorer-is:simexplorer-is for project: null:simexplorer-is-swing:jar:${current.version} for project null:simexplorer- is-swing:jar:${current.version} ----------------------------------------------------------->8--------------
Merci
Ok j'avais oublié ce petit détail, désolé. Dans tous les cas cela n'est pas normal et il faudra corrigé cela...
participants (2)
-
chemit@codelutin.com -
nicolas.dumoulin@cemagref.fr