2010-07-30 3 views
1

J'ai commencé à jouer avec Maven2 et j'essaye de porter un de mes projets de ant à maven. J'ai réussi à construire des fichiers d'oreille, utiliser jaxb et d'autres bits, mais il reste une chose que je ne sais pas comment aborder.en utilisant JSBuilder2.jar dans l'application web Maven2

J'ai le module WAR, avec le code ExtJS, et j'utilise JSBuilder pour créer et empaqueter le code correctement. Cela se fait comme tâche de fourmi et ressemble à ceci:

<target name="-pre-compile" description="Building Frontend Libraries"> 
    <java jar="web/lib/dev/JSBuilder2.jar" failonerror="true" fork="true" > 
     <arg line="--projectFile web/lib/dev/frontend.jsb2 --homeDir web/lib"/> 
    </java> 
</target> 

Je me demande quelle serait la façon « Maven » pour le faire? Existe-t-il un moyen de le faire purement dans maven (jette un oeil à maven: exec plugin mais est un peu confus) ou dois-je appeler fourmi de maven pour y parvenir?

Merci

Répondre

2

Le exec-maven-plugin est la bonne réponse (si vous voulez que l'objectif java). Vous devez le lier à une phase de cycle de vie. Regardez le usage page pour un exemple. Dans votre cas, vous auriez besoin de quelque chose comme ceci:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
    <version>1.1</version> 
    <executions> 
    <execution> 
     <id>jsbuilder</id> 
     <goals> 
     <goal>java</goal> 
     </goals> 
     <phase>compile</phase> 
     <configuration> 
     <mainClass><!-- fill in from jar's META-INF/MANIFEST.MF --></mainClass> 
     <argument>--projectFile</argument> 
     <argument>web/lib/dev/frontend.jsb2</argument> 
     <argument>--homedir</argument> 
     <argument>web/lib</argument> 
     </configuration> 
    </execution> 
    </executions> 
    <configuration> 
    <includeProjectDependencies>false</includeProjectDependencies> 
    <includePluginDependencies>true</includePluginDependencies> 
    </configuration> 
    <dependencies> 
    <!-- a bit nasty, would be better if jsbuilder2 available in a maven repo. --> 
    <dependency> 
     <groupId>com.extjs</groupId> 
     <artifactId>jsbuilder2</artifactId> 
     <version>2.0.0</version> 
     <scope>system</scope> 
     <systemPath>web/lib/dev/JSBuilder2.jar</systemPath> 
    </dependency> 
    </dependencies> 
</plugin> 

Si vous êtes un grand utilisateur de JSBuilder2, il serait intéressant de se demander Cencha si elles peuvent libérer le repo central Maven. Pointez-les au OSS Repository Hosting.

+0

Bonjour Dominic, Merci pour la relecture. J'ai ajusté votre exemple et je suis capable d'appeler JSBuilder de maven, mais il y a un petit problème que je suis en train de vivre. Il semble que les arguments décrits dans le script ne sont pas visibles pour jsbuilder. L'appel de retours aide à l'impression, ce qui suggère qu'aucun des paramètres requis n'a été transmis. J'ai regardé les exemples que vous avez mentionnés, et en les regardant, il semble que ça devrait aller, donc je suis un peu perplexe. J'ai pensé que j'essaierais avec différentes versions de maven exec plugin, mais le même résultat. Je me demande quel pourrait être le problème. – Greg

+0

Un peu plus de recherche et de mystère résolu! :) J'ai dû utiliser pour passer des paramètres de ligne de commande en une seule chaîne. Merci beaucoup pour votre aide! – Greg

Questions connexes