2010-08-19 6 views
0

Je suis en train de déployer une application web sur un service qui nécessite que je classe certaines classes dans un fichier Jar.Pojos dans Maven 2, classes de filtrage

Ainsi, dans l'exemple ayant l'arbre source suivante:

com.enterprise 
    |------ package1 
    |------ package2 
    |------ package3 

Comment puis-je créer un pot comprenant uniquement des classes de package1 et package3 mais pas Package2?

+0

Vous pouvez envisager de créer deux sous-modules (ou plus) qui contiennent (ou qui dépendent uniquement) des éléments regroupés avec cet artefact. Je trouve cela plus propre que l'utilisation d'excludes et vous permet de créer facilement un fichier .jar pour le paquet 1 + 2 et un autre pour le paquet3. –

Répondre

1

Vous pouvez configurer le plug-in Maven jar avec la propriété maven.jar.excludes qui contient une liste des chemins qui ne sont pas inclus dans le fichier jar. À ma connaissance, cette propriété est automatiquement utilisée lors de l'appel mvn jar:jar.

Ou vous pouvez directement configurer le plugin pour inclure/exclure des chemins:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    ... 
    <executions> 
     <execution> 
     <phase>package</phase> 
     <goals> 
      <goal>jar</goal> 
     </goals> 
     <configuration> 
      <classifier>client</classifier> 
      <excludes> 
      <exclude>**/service/*</exclude> 
      </excludes> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
+0

Cela a fait l'affaire. – escanda

+0

Peut-être plus facile de spécifier seulement les fichiers que vous souhaitez inclure plutôt que ceux que vous souhaitez exclure http://maven.apache.org/plugins/maven-jar-plugin/jar-mojo.html#includes –

+0

@matt dépend toujours de la complexité de la structure réelle. Normalement, je suis en faveur de la mise sur liste noire de petites quantités plutôt que sur la liste de tout ce qui n'est pas indiqué. –

1

Configurer le plugin Jar

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.2</version> 
    <configuration> 
     <excludes> 
      <exclude>com/yourcompany/package2/*</exclude> 
     </excludes> 
    </configuration> 
</plugin> 

Vous voulez probablement faire l'intérieur d'un profil

Questions connexes