2012-09-12 25 views
15

Quiero construir un archivo .jar con dependencias en maven. Desafortunadamente tengo que incluir algunos .jars externos en mi buildpath. Cuando intente construir este proyecto con el paquete maven, obtendré un error de que esos .jars externos no se encuentran.¿Cómo incluir los archivos jar externos en el proceso de compilación de maven jar?

¿Cómo adaptar mi archivo pom para agregar esos frascos? actual:

<plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-dependency-plugin</artifactId> 
       <executions> 
        <execution> 
         <id>copy-dependencies</id> 
         <phase>prepare-package</phase> 
         <goals> 
          <goal>copy-dependencies</goal> 
         </goals> 
         <configuration> 
          <outputDirectory>${project.build.directory}/classes/lib</outputDirectory> 
          <overWriteReleases>false</overWriteReleases> 
          <overWriteSnapshots>false</overWriteSnapshots> 
          <overWriteIfNewer>true</overWriteIfNewer> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <version>2.2-beta-4</version> 
       <configuration> 
        <descriptorRefs> 
         <descriptorRef>jar-with-dependencies</descriptorRef> 
        </descriptorRefs> 
       </configuration> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
    </plugins> 

Respuesta

13

puede incluir los frascos externos en su trayectoria de la estructura tal como la dependencia con <scope>system</scope> .

Marque esta link

+0

gracias, esto funciona bien para mi caso. –

+6

se ve bien, pero ¿qué pasa si no es parte del JDK, como el ejemplo cita? ¿Qué sucede si quiere hacer referencia a un JAR que está en el mismo directorio que el pom, por ejemplo? (en la carpeta del proyecto) – mmcrae

+2

Bien y bien, PERO esa dep entonces NO se empacará con su jar/war. – demaniak

2

Una solución simple para esto es añadir que en el repositorio local de Maven

Una forma de hacerlo es a través de mvn instalar comandos como se sugiere en el post anterior.

Otra manera fácil es, 1) En su eclipse, haga clic con el botón derecho en la opción de proyecto seleccionar Maven. 2) Seleccione Instalar o desplegar un artefacto en una opción de repositorio maven y haga clic en siguiente. 3) Haga clic en Examinar junto a la casilla de verificación archivo Artefacto & seleccionar el archivo jar 4) Introduzca el GroupId y artifactId y la versión garantizar generar pom & crear suma de comprobación se comprueba & envase es frasco

Haga clic en el acabado, Wallah !!! su trabajo está hecho, el jar se agrega en su repositorio local que puede definir en el directorio setting.xml o m2

Ahora solo agregue la dependencia maven simple según la versión de jar GroupId, ArtifactId & que ha ingresado según el importar y eso es todo, su mazo externo será empaquetado por maven.

2

usted necesita el uso por debajo de comando para agregar frasco externa en la carpeta .m2

mvn install:install-file -Dfile=[JAR] -DgroupId=[some.group] -DartifactId=[Some Id] -Dversion=1.0.0 -Dpackaging=jar 

Esto añadirá el frasco cedido a su carpeta de .m2. Después de eso, vaya a pom.xm y simplemente agregue la dependencia con el id del grupo, la identificación del artefacto y la versión.

Cuestiones relacionadas