java - 如何让插件执行使用Maven继承项目依赖

标签 java maven dependencies maven-plugin

我正在使用 Maven,并且我想执行一个插件而不重复某些必需的依赖项:

<build>
<plugins>
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>sql-maven-plugin</artifactId>
    <version>1.5</version>

    <dependencies>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.3.168</version>
        </dependency>
        <!-- ^^^ unnecessary duplication, IMO, because the project
                 already imports the dependency below -->
    </dependencies>

    <!-- ... -->
</plugin>
</plugins>
</build>

<dependencies>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.3.168</version>
    </dependency>
</dependencies>

在上面的示例中,我想省略 com.h2database:h2 依赖项,因为我已经在项目中指定了它。这可以做到吗?怎么办?

最佳答案

您可以通过使用父级中的pluginManagement block 来做到这一点,如下所示:

<pluginManagement>
  <plugins>
   <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>sql-maven-plugin</artifactId>
    <version>1.5</version>
    <dependencies>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.3.168</version>
        </dependency>
    </dependencies>
  </plugin> 
  </plugins>
</pluginManagement>

在你的 child 中,你只需要使用这样的执行:

 <build>
  <plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>sql-maven-plugin</artifactId>
        <executions>
          <execution>
           ....
          </execution>
        </executions>
    </plugin>
  </plugins>
 </build>

这将解决您仅在一个位置维护补充类路径依赖项 (h2) 的问题。

关于java - 如何让插件执行使用Maven继承项目依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20637454/

相关文章:

java - doThrow() doAnswer() doNothing() 和 doReturn() 在 mockito 中的用法

JavaFX 2.2 : buttons goes out of the Vbox layout when shrinking the stage

java - 如何不生成maven jar

maven-2 - Maven : how to override the dependency added by a library

grails - Grails从2.2.3升级到2.5.1

gradle - 如何在不修改 settings.gradle 的情况下添加 gradle 项目依赖项

java - 根据用户输入创建特定对象

Java-错误 :cannot find symbol

java - Maven 依赖顺序

java - Hibernate - 使用 net.ucanaccess.jdbc.UcanaccessDriver 时出现 org.hibernate.MappingException