2015-10-28 15 views
7

Sto cuocendo un'immagine Docker che esegue un'attività Maven in fase di esecuzione. Sembra un po 'come questo:Scarica tutte le dipendenze, dipendenze plugin, compilatori, ecc. Con Maven?

ADD pom.xml /srv 
ADD src /srv/src 

WORKDIR /srv 
RUN mvn dependencies:go-offline scala:testCompile 

In fase di esecuzione, sto correndo mvn gatling:execute per eseguire un programma di utilità di test di carico.

mio POM si presenta così:

<project> 
    <dependencies> 
     <dependency> 
      <groupId>io.gatling</groupId> 
      <artifactId>gatling-core</artifactId> 
      <version>${gatling.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>io.gatling</groupId> 
      <artifactId>gatling-http</artifactId> 
      <version>${gatling.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>io.gatling</groupId> 
      <artifactId>gatling-app</artifactId> 
      <version>${gatling.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>io.gatling.highcharts</groupId> 
      <artifactId>gatling-charts-highcharts</artifactId> 
      <version>${gatling.version}</version> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>net.alchim31.maven</groupId> 
       <artifactId>scala-maven-plugin</artifactId> 
       <version>${scala-maven-plugin.version}</version> 
      </plugin> 
      <plugin> 
       <groupId>io.gatling</groupId> 
       <artifactId>gatling-maven-plugin</artifactId> 
       <version>${gatling-plugin.version}</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>execute</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

quello che voglio che accada è che quando alla fine ho eseguito mvn gatling:execute, io non voglio avere a scaricare eventuali dipendenze, mi piacerebbe che tutti al forno nell'immagine al momento della costruzione.

Tuttavia, anche l'esecuzione di mvn dependencies:go-offline scala:testCompile non riesce a farmi arrivare fino in fondo. L'esecuzione di gatling:execute richiede comunque il download di più dipendenze.

Come è possibile scaricare assolutamente tutto ciò che è necessario per Maven nell'immagine Docker, in modo che non occorra scaricare in fase di esecuzione?

+0

Hai provato a legare l'esecuzione di Gatling a una fase e vedere se dipendenze: go-offline lo preleva? –

+0

Che cosa suggerisci? Mi dispiace, lunga giornata, non sono sicuro di cosa intendi esattamente. –

+0

Qualcosa come integrazione-test eseguire

risposta

1

Non è necessario eseguire la simulazione con il plug-in Maven, vero? Puoi usare Maven per confezionare un jar con tutte le dipendenze ed eseguire il gatling runner da esso.

+0

Lo so. Avevo bisogno di qualcosa _veloce_, non volevo andare in giro con il plug-in di assembly di Maven per tutto il giorno, cercando di far funzionare e far funzionare correttamente un'applicazione Scala. –

0

È possibile scaricare tutte le dipendenze utilizzando: mvn dependency:copy-dependencies

Dopo questo si dipendenze tutto del progetto sarà disponibile nella cartella ./target/dependency/.