2012-03-27 5 views
22

Actualmente estoy usando:Instalar archivo mediante POM en lugar de comandos

mvn install:install-file -Dfile={path/to/my/legacy.jar} -DgroupId=horrible -DartifactId=legacy.jar -Dversion=1.2.3 -Dpackaging=jar 

para importar algunos viejos frascos de legado en mi repo. Esto ha funcionado bien y es el enfoque recomendado. Parece que esto podría hacerse con un POM en lugar de en el script de línea de comandos + que estoy usando ahora. Creo que es más limpio que tener:

mvn install:install-file 

y dejo mi tienda repo los detalles de la versión en lugar de almacenar esta información en una secuencia de comandos no experto (que es extraño para Maven). Traté de exponer estas configuraciones -D a través de la etiqueta de configuración pero eso no funcionó. ¿Alguien más ha intentado esto y lo hizo funcionar?

+0

Tal vez estoy perdiendo el punto, pero ¿por qué tiene que la escritura es? ¿Seguramente solo necesitará importar estas jarras heredadas en su repositorio una vez? – artbristol

+0

Solo como algo de mantenimiento, esto es así si necesitamos exportar de nuevo al repositorio (por cualquier razón) exportamos con el mismo número de ID de grupo/versión. – reccles

Respuesta

30

Bien, respondiendo mi propia pregunta: P. Puede hacer esto definiendo propiedades, originalmente asumí que groupId, etc. se auto exportaron como propiedades, pero no lo son.

<?xml version="1.0" encoding="UTF-8"?> 
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.whatever</groupId> 
    <artifactId>Stuff</artifactId> 
    <version>1.2.3</version> 

    <description> 
    Description of why this horrible jar exists. 
    </description> 

    <properties> 
    <groupId>${project.groupId}</groupId> 
    <artifactId>${project.artifactId}</artifactId> 
    <version>${project.version}</version> 
    <packaging>${project.packaging}</packaging> 
    <file>mylegacy.jar</file> 
    </properties> 

    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-install-plugin</artifactId> 
     <executions> 
      <execution> 
      <phase>install</phase> 
      <goals> 
       <goal>install-file</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 

</project> 

Ahora puede instalar los archivos usando:

mvn install 

y esto pom.xml. He probado esto con Maven 3 y no 2.

Para múltiples archivos también ver Maven POM file for installing multiple 3rd party commercial libraries

+1

Gracias por esto. Exactamente lo que estaba buscando – mahonya

+4

También encontré esto, que puede funcionar mejor si tiene varios archivos jar: http://stackoverflow.com/questions/10802280/multiple-installinstall-file-in-a-single-pom-xml – mahonya

+0

votó por la descripción :) – Rondo

Cuestiones relacionadas