Comment puis-je compiler uniquement nécessaire widgets dans Vaadin 7 avec Maven?
Je suis nouveau sur le framework Vaadin qui je ressemble très intéressant, à l'aide d'eclipse et maven pour développer et construire mon application je trouve assez ennuyeux que chaque fois que je fais un mvn clean install cela prend autant de temps pour construire l'application, j'ai trouvé que c'est parce qu'il compile l'ensemble des widgets.
Même si je n'en suis qu'à l'aide d'un Bouton dans ma mise en page, il faudra donc beaucoup sur la construction de l'application.
J'ai fait des recherches pendant un certain temps dans l'Internet et de 2 livres, mais ne peut pas trouver suffisamment d'informations sur comment se rendre à seulement compiler les composants que j'utilise, et non pas l'ensemble.
J'ai créé le projet en utilisant l'archétype maven:
mvn archetype:generate -DarchetypeGroupId=com.vaadin -DarchetypeArtifactId=vaadin-archetype-application -DarchetypeVersion=7.1.9
Je suis sûr que le widgetset est compilé à chaque fois que j'construire la guerre, quand je fais un mvn clean il supprime le répertoire: /src/main/webapp/VAADIN/widgetsets et /src/main/webapp/VAADIN/gwt-unitCache
Quand je exécuter mvn install la construction va durer plus de 3 minutes:
...
[INFO] Compiling 6 permutations
[INFO] Compiling permutation 0...
[INFO] Process output
[INFO] Compiling
[INFO] Compiling permutation 1...
[INFO] Process output
[INFO] Compiling
[INFO] Compiling permutation 3...
[INFO] Process output
[INFO] Compiling
[INFO] Compiling permutation 2...
[INFO] Compiling permutation 4...
[INFO] Compiling
[INFO] Compiling permutation 5...
[INFO] Compile of permutations succeeded
[INFO] Linking into /.../example/src/main/webapp/VAADIN/widgetsets/com.my.example.AppWidgetSet; Writing extras to /.../example/target/extra/com.my.example.AppWidgetSet
[INFO] Link succeeded
[INFO] Compilation succeeded -- 167.103s
[INFO]
[INFO] --- maven-war-plugin:2.2:war (default-war) @ ade ---
[INFO] Packaging webapp
[INFO] Assembling webapp [example] in [/.../example/target/example-0.1.0-SNAPSHOT]
[INFO] Processing war project
[INFO] Copying webapp resources [/.../example/src/main/webapp]
[INFO] Webapp assembled in [562 msecs]
[INFO] Building war: /.../example/target/example-0.1.0-SNAPSHOT.war
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ ade ---
[INFO] Installing /.../example/target/example-0.1.0-SNAPSHOT.war to /.../example/0.1.0-SNAPSHOT/example-0.1.0-SNAPSHOT.war
[INFO] Installing /.../example/pom.xml to /.../example/0.1.0-SNAPSHOT/example-0.1.0-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3:03.768s
[INFO] Finished at: Fri Jan 10 00:10:45 EST 2014
[INFO] Final Memory: 16M/81M
[INFO] ------------------------------------------------------------------------
Après cela, le répertoire /src/main/webapp/VAADIN/widgetsets est généré à nouveau contenant les répertoires suivants:
WEB-INF
com.my.example.AppWidgetSet
Il génère aussi /src/main/webapp/VAADIN/gwt-unitCache
- Avez-vous utilisé Vaadin Plug-in pour Eclipse pour générer projet maven avec cette pom?
- J'ai créé le projet avec mvn archetype:generate ... j'ai pensé Eclipse Vaadin Plugin ne permet pas de créer des projets maven
- Ok, j'ai vérifié - que j'ai créé il par eclipse, maven du projet avec vaadin7 artefact, puis widgetset n'est pas compilé.
- Pourriez vous s'il vous plaît répondre à la question et expliquer la procédure à suivre pour créer le projet pour que la communauté puisse en bénéficier? Merci
- J'ai vérifié et vaadin plugin eclipse au moins la version actuelle 2.2.0.201312051010 n'a pas la possibilité de création d'un projet maven, il utilise le Lierre comme dépendance de l'outil de gestion. Si vous utilisez l'artefact maven comme je l'ai montrer à la question du post, elle compile les widgets chaque fois, si vous exécutez le maven avec l'installation de l'objectif: mvn install
Vous devez vous connecter pour publier un commentaire.
Avez-vous besoin d'un custom widgetset? Si vous n'utilisez pas n'importe quel widget addons, et puisque vous êtes nouveau à Vaadin je suis en supposant que vous n'avez pas à créer vos propres widgets encore(?), vous pouvez simplement utiliser la précompilés widgetset fournis par Vaadin. Pour ce faire, retirez tout xxx.gwt.xml fichier de votre projet, et de remplacer la référence dans web.xml avec com.vaadin.DefaultWidgetset.
web.xml:
pom.xml:
Si vous avez besoin d'un custom widgetset (et si vous n'avez pas maintenant, les chances sont que vous aurez besoin d'un plus bas de la route), ne vous une faveur et de le mettre dans un projet distinct. Dans mon expérience, un widgetset très rarement des changements, alors pourquoi l'inclure dans un projet qui change en permanence. La valeur par défaut widgetset mentionné ci-dessus, fournis par Vaadin, est le préfet du plan directeur pour la construction de l'un. Construisez votre propre, et la copie de sa structure de vaadin-client-compiled.jar. Vous pouvez utiliser votre favori maven build aide pour que, la mienne est assemblée. Il suffit de créer un projet maven, le programme d'installation pom.xml, ajouter un xxx.gwt.xml et assurez-vous que web.xml contient une référence à elle. Ma propre configuration ressemble à quelque chose comme ce que vous voyez ci-dessous.
pom.xml:
assembly.xml:
MyWidgetset.gwt.xml:
web.xml:
structure de projet:
Construire, utiliser le pot comme une dépendance dans votre projet, et vous avez terminé. Cela permettra de vous libérer de manière permanente de la grande douleur-dans-le-cul que GWT appelle "widgetset compilation".
Pour réduire le temps de compilation de la widgetset vous pourrait et à la suite de l' .gwt.xml fichier et supprimez les marques de la balise de propriété.
pour créer un nouveau vaadin-projet maven, vous pouvez essayer d'utiliser le vaadin 7 plugin assistant nouveau projet qui permettra de créer un nouveau projet avec le lierre de gestion de la dépendance, après la création du projet, clic droit sur le projet et enlever le lierre de gestion de la dépendance, puis clic droit --> configure--> convertir en projet maven va ajouter maven de gestion de la dépendance au projet.
AppWidgetSet.gwt.xml
fichier trouvé avec Vaadin .les fichiers java. Copier cette ligne de commentaire vu ci-dessus. Remplacer le type de navigateur que vous utilisez au cours du développement. Par exemple sur un Mac à l'aide de Safari (et, apparemment, google Chrome) pour le débogage à partir de l'IDE (tels que NetBeans), l'utilisation<set-property name="user.agent" value="safari"/>
. Cela réduit le très long temps de compilation pour 6 "permutations" à 1 "permutation".Juste ne pas compiler n'importe quel widget, utiliser celui par défaut; pour cela vous devez définir les fichiers suivants:
web.xml:
Ou dans le de l'INTERFACE utilisateur mise en œuvre de votre projet:
Enfin dans le pom.xml inclure ces dépendances:
Rien d'autre. J'ai résolu avec ces, j'espère que vous aussi.
Si vous fatigué avec la constante de compilation/recompiler widgetsets,
Je vous suggère d'utiliser "CA Viritin Magie"
Avantages:
@Widgetset
maven-vaadin-plugin
Note 1 (pour Vaadin Printemps de Démarrage des utilisateurs) :
Après le succès de l'tutoriel procédure pas à pas(ne courez pas
mvn clean install
encore!)Vous devez définir une chose de plus en
YourAppNameApplication
classe :Note 2: C'est OK pour utiliser côtés avec
spring-boot-maven-plugin