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