plugin exclude java maven maven-assembly-plugin

java - exclude - resources build maven



Montajes mĂșltiples de un proyecto de Maven (1)

Esta pregunta ya tiene una respuesta aquí:

Tenemos diferentes código fuente de java "proyectos". Los 3 proyectos son completamente idénticos (fatclient, mismas dependencias, etc.) - solo hay otra clase principal que debe invocarse

Hoy tenemos un proyecto base con una clase principal:

<project> <groupId>net.company.BaseTool</groupId> <artifactId>BaseTool</artifactId> <version>1.1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>BaseTool</name> <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>net.company.BaseTool</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> </project>

y otros proyectos que según el proyecto base.

<project> <groupId>net.company.AnotherTool</groupId> <artifactId>AnotherTool</artifactId> <version>1.1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>AnotherTool</name> <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>net.company.AnotherTool</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>net.company.BaseTool</groupId> <artifactId>BaseTool</artifactId> <version>1.1.0-SNAPSHOT</version> </dependency> </dependencies> </project>

Estamos haciendo esto, porque necesitamos simples aplicaciones para iniciar con un doble clic.

Pero no quiero crear un proyecto java extra para cada aplicación.

Mi pregunta es: ¿Es posible crear múltiples ensamblajes desde un proyecto? Y si es así, cómo debe hacerse.

Aquí viene la solución

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>my.company.toolbox</groupId> <artifactId>toolbox</artifactId> <version>1.1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>toolbox</name> <url>http://wiki.company.my/toolbox</url> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.6</version> <configuration> <finalName>toolbox</finalName> <appendAssemblyId>false</appendAssemblyId> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>ToolOne</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>ToolOne</finalName> <archive> <manifest> <mainClass>my.company.ToolOne</mainClass> </manifest> </archive> </configuration> </execution> <execution> <id>ToolTwo</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>ToolTwo</finalName> <archive> <manifest> <mainClass>my.company.ToolTwo</mainClass> </manifest> </archive> </configuration> </execution> <execution> <id>ToolThree</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>ToolThree</finalName> <archive> <manifest> <mainClass>my.company.ToolThree</mainClass> </manifest> </archive> </configuration> </execution> <execution> <id>ToolFour</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>ToolFour</finalName> <archive> <manifest> <mainClass>my.company.ToolFour</mainClass> </manifest> </archive> </configuration> </execution> </executions> </plugin>