2017-12-07 1 views
0

Ich verwende download-maven-plugin um einige der Ressourcen herunterzuladen, die in meinem Projekt verwendet werden sollen. Der Download ist erfolgreich und ich kann die heruntergeladene Datei verwenden.maven download plugin um heruntergeladene ressource in jar zu laden

Allerdings möchte ich die heruntergeladene Datei in das JAR aufnehmen.

Hinweis: Die Ressourcendatei wird im JAR enthalten sein, wenn sie vor dem Ausführen des Builds heruntergeladen wurde. Ist sie jedoch nicht vorhanden (z. B. gelöscht oder möchte sie möglicherweise aktualisieren), ist die Ressourcendatei nicht enthalten das Gefäss.

Grundsätzlich möchte ich die kürzlich heruntergeladene Datei (von mvn clean install) in die Ausgabe-JAR aufnehmen.

 <plugin> 
      <groupId>com.googlecode.maven-download-plugin</groupId> 
      <artifactId>download-maven-plugin</artifactId> 
      <version>1.4.0</version> 
      <executions> 
       <execution> 
        <phase>prepare-package</phase> 
        <goals> 
         <goal>wget</goal> 
        </goals> 
        <configuration> 
         <url>https://downloadurl</url> 
         <outputFileName>error.json</outputFileName> 
         <outputDirectory>${project.resources.dir}/commons</outputDirectory> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

Das gleiche passiert, wenn ich maven-ant-run-Plugin verwende.

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>download-files</id> 
        <phase>prepare-package</phase> 
        <goals> 
         <goal>run</goal> 
        </goals> 
        <configuration> 
         <tasks> 
          <get src="https://downloadurl" 
           dest="${project.resources.dir}/commons/data.json" 
           verbose="true" 
           usetimestamp="true"/> 
         </tasks> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
+0

Warum sind Sie Ressourcen wie das Herunterladen? Warum nicht in 'src/main/resources'? – khmarbaise

+0

Dies ist eine gemeinsame Ressource zwischen Plattformen und ich mag es, Dinge zu automatisieren, wann immer es aktualisiert wird. Ich möchte jedes Mal, wenn ich baue, die neuesten Informationen erhalten. – Aaron

+0

** ohne manuell hinzuzufügen ** :) – Aaron

Antwort

0

Gelöst!

änderte ich die Phase Prozess-Ressourcen ..

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>download-files</id> 
        <phase>process-sources</phase> 
        <goals> 
         <goal>run</goal> 
        </goals> 
        <configuration> 
         <tasks> 
          <get src="https://downloadUrl" 
           dest="${project.resources.dir}/commons/error.json" 
           verbose="true" 
           usetimestamp="true"/> 
         </tasks> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
0

Einfach vor der Verpackungsphase auf ${basedir}/target/classes herunterladen. Sie brauchen es nicht in Quellen, um es in JAR aufzunehmen.

Verwandte Themen