49 votes

Comment déployer uniquement les sous-modules à l'aide de maven deploy ?

Comment déployer uniquement les sous-modules du projet ? j'ai un projet en tant que;

 ProjectA
 -  Submodule B
 - Submodlue C
 - Submodule D 

Les sous-modules sont empaquetés en tant que jar et sont déployés dans le référentiel maven. Comment seuls les sous-modules peuvent-ils être déployés dans le référentiel maven et non dans le projet principal ?

73voto

vishwambhar Points 758

Mettez ceci dans le(s) module(s) (ou le module pom.xml) que vous ne souhaitez pas déployer :

 <properties>
  <maven.deploy.skip>true</maven.deploy.skip>
</properties>

Comme cela est hérité par les sous-modules, vous devez le mettre dans les sous-modules que vous souhaitez déployer :

 <properties>
  <maven.deploy.skip>false</maven.deploy.skip>
</properties>

10voto

PaulT Points 3398

Cela a fonctionné pour moi. Similaire à une autre réponse, à l'exception de l'ajout d'un élément de plugins manquant. Ajouter au POM parent.

 <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>
    </plugins>
</build>

8voto

Ondra Žižka Points 8262

Vous pouvez utiliser la technique décrite dans mon blog .

Dans ce cas, vous désactiveriez default-deploy (ou quel est le nom) dans la racine pom.xml :

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <executions>
        <execution>
            <id>default-deploy</id>
            <phase>none</phase>
        </execution>
    </executions>
</plugin>

Et puis activez-le pour les sous-modules :

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <executions>
        <execution>
            <id>default-deploy</id>
            <phase>deploy</phase>
        </execution>
    </executions>
</plugin>

6voto

skay Points 121

ça marche de mon côté Mettez la déclaration du plugin dans le parent pom , skip=true, mais définissez inherited=false. Cela empêche de répéter le sur chaque module enfant.

         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>2.8.2</version>
            <configuration>
                <skip>true</skip>
            </configuration>
            <inherited>false</inherited>
        </plugin>

1voto

Raghu Points 21

Vous pouvez configurer le maven-deploy-plugin dans le POM d'un module pour l'exclure du déploiement :

 <build>
  <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-deploy-plugin</artifactId>
     <version>2.4</version>
     <configuration>
       <skip>true</skip>
     </configuration>
   </plugin>
   ...
</build>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X