Maven依赖插件 - 在打包阶段下载jar

时间:2014-02-02 17:01:37

标签: maven maven-dependency-plugin

我希望Maven下载并将jetty-runner.jar依赖项放入myproject/target/dependency文件夹。

pom.xml的一部分:

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.8</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals><goal>copy</goal></goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.eclipse.jetty</groupId>
                                    <artifactId>jetty-runner</artifactId>
                                    <version>9.1.1.v20140108</version>
                                    <destFileName>jetty-runner.jar</destFileName>
                                    <outputDirectory>${project.build.directory}/dependency</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

但是,当我从项目目录mvn package时,jetty-runner.jar未复制到/target/dependency文件夹。

当我将以下行添加到<configuration>时,有什么用?

<id>default-cli</id>

并使用mvn dependency:copy运行它。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

<pluginManagement>部分中配置maven-dependency-plugin时,maven将不会对其执行任何操作。您的<pluginManagement>部分仅定义了如何调用maven-dependency-plugin进行配置。要在打包阶段实际调用插件,您需要在<plugins>部分中定义调用。

因此,您可以将整个插件配置从<pluginManamgement>移动到<plugins>,也可以另外定义maven-dependency-plugin,而不需要<plugins>中的版本和配置1}}部分:

<build>
  <plugins>
    <!-- no need for version or configuration since both are defined in pluginManagement -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-dependency-plugin</artifactId>
    </plugin>
    ...
  </plugins>
  ...
</build>