Maven - 插件和外部的依赖关系之间的差异?

时间:2014-07-12 18:42:39

标签: maven

我遇到了一些示例代码,它们在插件标记中指定依赖项,如下所示:

   <build>
      <plugins>
        <plugin>
            <dependencies>
                <dependency>
                    <groupId>org.hsqldb</groupId>
                    <artifactId>hsqldb</artifactId>
                    <version>2.2.8</version>
                </dependency>
            </dependencies>
        </plugin>
      </plugins>
   </build>

对我来说这看起来很奇怪,因为大多数情况下我看到人们将依赖项标记放在构建标记之外。

1 个答案:

答案 0 :(得分:1)

<dependency>添加到项目时,该项目可以使用它,具体取决于其范围(编译,测试,运行时等)

但是当你在插件的执行中添加<dependency>时,你会在运行时在类路径中为该插件提供该工件

例如:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-checkstyle-plugin</artifactId>
  <version>2.1</version>
  <executions>
      <execution>
        <id>check my sources</id>
        <goals>
          <goal>check</goal>
        </goals>
        <phase>compile</phase>
      </execution>
  </executions>
  <dependencies>
     <dependency>
        <groupId>checkstyle</groupId>
        <artifactId>checkstyle</artifactId>
        <version>4.4</version>
     </dependency>
  </dependencies>
</plugin>
此代码段checkstyle:checkstyle:4.4中的

在运行时可用于maven-checkstyle-plugin


阅读更多