Estoy tratando de descomprimir un artefacto maven Una y guárdela en un nuevo archivo jar en el proyecto de maven B.

De desempaquetar los archivos de clase de Un artefacto en:

    <my.classes.folder>${project.build.directory}/staging</my.classes.folder>

funciona bien con:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>unpack</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>com.test</groupId>
                                <artifactId>mvn-sample</artifactId>
                                <version>1.0.0-SNAPSHOT</version>
                                <type>jar</type>
                                <overWrite>true</overWrite>
                                <outputDirectory>${my.classes.folder}</outputDirectory>
                                <includes>**/*.class,**/*.xml</includes>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>

En el mismo pom ahora quiero generar un adicional de envase que contiene las clases descomprimido:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                    <configuration>
                    <classesdirectory>${my.classes.folder}</classesdirectory>
                        <classifier>sample</classifier>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Un nuevo frasco está creado pero no contiene las clases a partir del:

 ${my.classes.folder}

simplemente una copia del proyecto predeterminado frasco. Alguna idea?

He tratado de seguir esta guía:

http://jkrishnaraotech.blogspot.dk/2011/06/unpack-remove-some-classes-and-repack.html

pero no su trabajo.

OriginalEl autor u123 | 2012-10-30

2 Comentarios

  1. 3

    De la muestra tiene <classesdirectory>, el docs tiene un elemento como <classesDirectory>. El caso de la sensibilidad de la materia, creo.

    Y dicho esto, creo que @maba la respuesta puede ser mejor para este caso de uso.
    Bien visto allí! +1 para que.

    OriginalEl autor user944849

  2. 7

    Yo le sugerimos que utilice la maven-sombra-plugin lugar.

    Que va a hacer el desempaquetado-repack en la misma invocación.

    Se podría hacer algo como esto por ejemplo:

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>2.0</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <filters>
                <filter>
                  <artifact>com.test:mvn-sample:1.0.0-SNAPSHOT</artifact>
                  <includes>
                    <include>**/*.class</include>
                    <include>**/*.xml</include>
                  </includes>
                </filter>
              </filters>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>

    OriginalEl autor maba

Dejar respuesta

Please enter your comment!
Please enter your name here