2012-03-17 32 views
11

Eso es todo lo que necesito. Detalles adicionales: Tengo una carpeta src/bootstrap/java y la carpeta regular src/main/java. Cada uno necesita ir a un recipiente separado por razones obvias. Yo era capaz de generar un frasco de arranque usando this:Cómo excluir un conjunto de paquetes de Maven build jar?

<plugin> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.3.1</version> 
    <executions> 
     <execution> 
     <id>only-bootstrap</id> 
     <goals><goal>jar</goal></goals> 
     <phase>package</phase> 
     <configuration> 
      <classifier>bootstrap</classifier> 
      <includes> 
      <include>sun/**/*</include> 
      </includes> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

Pero el frasco regulares todavía incluye las clases de arranque. Estoy compilando las clases de arranque con this answer.

Cualquier luz para generar un myproject.jar SIN las clases de arranque?

Respuesta

16

tienes que hacerlo uso "default-jar" para el ID:

<plugin> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.3.1</version> 
    <executions> 
     <execution> 
     <id>only-bootstrap</id> 
     <goals><goal>jar</goal></goals> 
     <phase>package</phase> 
     <configuration> 
      <classifier>bootstrap</classifier> 
      <includes> 
      <include>sun/**/*</include> 
      </includes> 
     </configuration> 
     </execution> 
     <execution> 
     <id>default-jar</id> 
     <phase>package</phase> 
     <goals> 
      <goal>jar</goal> 
     </goals> 
     <configuration> 
      <excludes> 
      <exclude>sun/**/*</exclude> 
      </excludes> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
+2

¿Me podría decir qué comando que ha utilizado para ejecutar Identificación de ejecución específico. –

+0

¡Gracias! ¿Cuál es el problema con tener que especificar 'default-jar'? ¿Maven-jar-plugin lo busca? – asgs

0

¿Quizás use ProGuard? Es lo que uso para quitar el código no utilizado. Es seems que puede agregarlo como un plugin de Maven.

1

Creo que puedes echarle un vistazo a esto antes de decidir generar dos jarras de una pom.

Maven best practice for generating multiple jars with different/filtered classes?

Si aún así decide obtener dos frascos, es probable que lo puede hacer uso de esta. Debe especificar las exclusiones adecuadas.

<build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-jar-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>only-bootstrap</id> 
      <goals><goal>jar</goal></goals> 
      <phase>package</phase> 
      <configuration> 
       <classifier>only-library</classifier> 
       <includes> 
       <include>**/*</include> 
       </includes> 
       <excludes> 
       <exclude>**/main*</exclude> 
       </excludes> 
      </configuration> 
      </execution> 
      <execution> 
      <id>only-main</id> 
      <goals><goal>jar</goal></goals> 
      <phase>package</phase> 
      <configuration> 
       <classifier>everything</classifier> 
       <includes> 
       <include>**/*</include> 
       </includes> 
       <excludes> 
       <exclude>**/bootstrap*</exclude> 
       </excludes> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
Cuestiones relacionadas