【发布时间】:2013-12-17 15:00:04
【问题描述】:
我正在使用 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 依赖,因为我已经在项目中指定了它。这可以做到吗?怎么样?
【问题讨论】:
-
嗨,卢卡斯。这是一个小世界。我正在为我的课程中的数据库模块编写 Flyway 课程,我对
org.flywaydb:flyway-maven-plugin:5.0.7有同样的问题:如果项目已经在主项目中使用了,例如,org.postgresql:postgresql:42.2.2(很可能),为什么我是否需要为 Flyway 架构迁移插件再次指定它?如果您找到答案,请告诉我。现在我将在课程中指出必须在两个地方都列出依赖项。干杯! -
@GarretWilson:您好 :) 据我所知,Flyway 插件(就像 jOOQ 插件一样)可以访问项目的类路径以发现 JDBC 驱动程序。这里的这个问题是关于
sql-maven-plugin,它不这样做。开箱即用,Maven 不支持这种依赖“继承”机制。我认为您最好创建一个新问题... -
哦,你的意思是我不需要在 Flyway 插件依赖部分指定 JDBC 驱动,如果项目已经在主依赖中有 JDBC 驱动?
-
@GarretWilson:没错。请参阅此示例:github.com/jOOQ/jOOQ/blob/version-3.10.6/jOOQ-examples/…
标签: java maven dependencies maven-plugin