2012-05-29 11 views
15

(Lea al menos esto antes de responder: medida temporal! No, no queremos configurar un administrador de repositorio local y ejecutar manualmente un script)Instalación múltiple: install-file en un solo pom.xml

Tenemos un proyecto heredado con unas pocas dependencias de las que tenemos una copia local de source y javadoc, y que ha demostrado funcionar bien en producción, pero que no está disponible en la misma calidad en Central. Queremos usar esos frascos que ya tenemos.

He encontrado que puedo ejecutar manualmente un comando adecuadamente complejo mvn install:install-file para obtener los artefactos inyectados en el repositorio de la máquina local, pero me gustaría que funcione como parte de la construcción maven normal de nuestros diversos módulos.

Dado que tengo un módulo en blanco que contiene varios frascos que deben insertarse con un install:install-file, ¿cómo debo hacer esto en mi pom.xml para estar completamente de acuerdo con la construcción normal de Maven?

¿O puedo simplemente conectar varias jarras para ser la salida del módulo y de alguna manera adjuntar javadoc y la fuente también)?

(y, por favor, ninguna sugerencia sobre el envío al centro o la creación de un administrador de repositorio local. Esta es una solución temporal hasta que tengamos una oportunidad para actualizar a una versión más reciente de las dependencias)

+0

¿Desea que la instalación se ejecute con cada compilación del proyecto? no es la instalación local una cosa de una sola vez? – jtahlborn

+0

Supongo que podría crear un artefacto pom y solo se actualizará cuando cambie el artefacto. Pero si es necesario para esto, eso sería aceptable por ahora. –

+0

Consulte [esta respuesta] (https://stackoverflow.com/a/48670812/1744774) para [Deseo cargar todos los JAR de mi carpeta de proyectos libs con Maven] (https://stackoverflow.com/q/48665906/ 1744774) para evitar que 'install-plugin' se ejecute en cada compilación. –

Respuesta

17

me imaginaría algo así funcionaría (esto lo instalará en cada compilación):

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-install-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>inst_1</id> 
        <phase>initialize</phase> 
        <goals> 
         <goal>install-file</goal> 
        </goals> 
        <configuration> 
         <!-- config for file 1 --> 
        </configuration> 
       </execution> 
       <execution> 
        <id>inst_2</id> 
        <phase>initialize</phase> 
        <goals> 
         <goal>install-file</goal> 
        </goals> 
        <configuration> 
         <!-- config for file 2 --> 
        </configuration> 
       </execution> 
       <!-- execution file 3... --> 
      </executions> 
     </plugin>    
    </plugins> 
</build> 
+0

Funciona bien, ¡gracias! –

+1

Creo que hay un error en esta respuesta. ' initialize' tuvo que ser cambiado a ' install' para mí en Eclipse Luna. De lo contrario, Eclipse lo marcaría como un ciclo de vida no válido – MattEdge

+0

"mvn initialize" pone los archivos jar en el repositorio maven local pero no en la "instalación mvn". Por qué ? – signonsridhar

Cuestiones relacionadas