Maven依赖插件 - 包装阶段下载JAR



我希望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

我缺少什么?

当您在<pluginManagement>部分中配置Maven依赖性 - plugin时,Maven将无能为力。您的<pluginManagement>节仅定义了在调用Maven依赖性 - plugin的情况下如何配置。要在包装阶段实际调用插件,您需要在<plugins>节中定义调用。

因此,您可以将整个插件配置从<pluginManamgement>移动到<plugins>,也可以定义<plugins>中没有版本和配置的Maven依赖性 - plugin:

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

最新更新