我正在使用Maven 3.x(3.2.5),并且我的项目使用带有附加依赖项的maven-antrun-plugin
。虽然我了解背后的原理,但是在这种情况下我很难理解<scope />
的使用:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<!-- executions -->
<dependencies>
...
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.17</version>
<scope>runtime</scope>
</dependency>
...
</dependencies>
</plugin>
我依靠mysql-connector-java
的{{1}}范围,而其他依赖项使用默认(runtime
)的范围。
compile
用于对各种数据库进行操作(因此具有依赖性)。但是,由于该项目未绑定到特定的JDBC驱动程序,因此不会将该驱动程序添加到项目依赖项中。 Ant任务以多个驱动程序作为依赖项运行,因为它可能根据配置使用 (例如:一个数据库可以使用maven-antrun-plugin
,其他jdbc:mysql
等)。 。
据我了解,由于该插件已执行,因此maven会忽略范围。
是真的吗?
注意:我已经读过Maven documentation,并且没有讨论这一点。我敢肯定它会被忽略,但是我想先了解一下。