我正在使用download-maven-plugin来下载我项目中使用的一些资源。下载成功,我可以使用下载的文件。
但是,我想要的是将下载的文件包含在JAR中。
注意:资源文件在运行构建之前预先下载时将包含在JAR中,但如果它不存在(例如删除或者我想更新它),则资源文件不包含在JAR。
基本上我想要的是在输出JAR中包含最近下载的文件(来自mvn clean install)。
<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>
当我使用maven-ant-run插件时会发生同样的事情。
<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 :(得分:0)
在打包阶段之前将其下载到${basedir}/target/classes
。您不需要将其包含在源代码中以便将其包含在JAR中。
答案 1 :(得分:0)
<强>解决!强>
我将阶段更改为 process-resources ..
<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>