2009-07-06 7 views
2

Je suis assez nouveau pour maven.maven javaee application client plugin

Existe-t-il un type de plugin ou d'emballage adapté à la création de fichier jar client d'application?

Je souhaite ajouter le fichier application-client.xml au dossier META-INF dans le fichier jar.

L'emballage de pot normal n'inclut pas le fichier.

+0

Ici, il est: http://maven.apache.org/plugins/maven-acr-plugin/ http://maven.apache.org/plugins /maven-ear-plugin/examples/using-app-client.html – Pablo

Répondre

1

Vous devez seulement besoin de définir le projet avec l'emballage de pot (et comme il est le défaut que vous n'êtes pas obligé de le déclarer). Si vous définissez le fichier application-client.xml dans le dossier src/main/resources/META-INF, il sera inclus dans le dossier META-INF du fichier final.


Pour définir des informations supplémentaires, vous devez configurer le plugin jar comme ci-dessous.

<project> 
... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <version>2.2</version> 
     <configuration> 
      <archive> 
      <manifest> 
       <mainClass>com.mycompany.app.App</mainClass> 
       <addClasspath>true</addClasspath> 
      </manifest> 
      <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile> 
      </archive> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
    ... 
</project> 

Vérifiez la guide to working with manifests pour plus de détails

+0

Cela fonctionne bien. Maintenant, comment ajouter des informations de classe principale et de chemin de classe à menifest? – rangalo

0

Je ne suis pas très familier avec le support de JavaEE dans Maven, mais il semble que le plugin ejb puisse également générer un fichier client si configuré correctement. Consultez cette page sur:

Maven EJB Plugin - Generating an EJB client

+0

Merci. Je l'ai essayé mais ne semble pas fonctionner. Le fichier application-client.xml n'est pas inclus. Dois-je changer l'emballage? – rangalo

+0

Cela crée simplement un second artefact, avec les classes client (par exemple, les interfaces EJB) à inclure dans les applications client. Ces applications client peuvent être des modules WAR ou d'autres clients d'application. Le 2ème artefact a le classificateur "-classes" maven. –

+0

l'OP peut-être parler de »Java EE Application Client« - c'est un EJB avec un main() qui est exécuté par le conteneur lors du déploiement. Ou pas - le double usage du client ici est déroutant. – Martin

Questions connexes