我有一个本地jar(我自己编写的maven插件),我正在安装
mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=dependencies/my-maven-plugin-1.0.jar
该插件有一些依赖项(在jar中的pom.xml中定义);
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>3.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.13</version>
</dependency>
<dependency>
<groupId>com.hubspot.jinjava</groupId>
<artifactId>jinjava</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
</dependencies>
但是使用maven-install-plugin,这些都没有安装。在安装jar时,我可以以某种方式自动安装所需的依赖项吗?
答案 0 :(得分:1)
不,你不能这样做。这是正常的:maven-install-plugin
将安装您传递的文件,在这种情况下是my-maven-plugin-1.0.jar
,并且就是这样。它还会查看JAR内部以找到要安装的POM,因为如果没有安装POM,安装的工件将无法用作依赖项。
但它并没有这样做,因为它并不需要。下次依赖此工件时,使用POM中写入的坐标,Maven将自动从配置的远程存储库(默认为Maven Central)下载依赖项,并将它们安装在本地存储库中。不需要手动启动install-file
目标;这仅在Maven存储库上没有工件时才有用。
如果maven-install-plugin
也会安装工件的依赖项来手动安装,那么当你最终依赖于某个项目中的工件时,Maven本身就会做同样的事情。