maven下载插件将下载的资源添加到jar

时间:2017-12-07 07:05:22

标签: java maven

我正在使用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>

2 个答案:

答案 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>