我正在尝试编写自己的maven插件。当我手动mvn安装插件项目时,我可以毫无问题地使用它,但是我在从远程maven存储库中检索它时遇到了问题。如果我从.m2 / repository目录中删除com / company / my-plugin,然后尝试执行mvn install,则会出现此错误。
[WARNING] The POM for com.company:my-plugin:jar:0.0.1-SNAPSHOT is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.472s
[INFO] Finished at: Wed Jun 19 16:15:29 EDT 2013
[INFO] Final Memory: 4M/122M
[INFO] ------------------------------------------------------------------------
[ERROR] Plugin com.company:my-plugin:0.0.1-SNAPSHOT or one of its dependencies could not be resolved: Failed to read artifact descriptor for com.company:my-plugin:jar:0.0.1-SNAPSHOT: Could not find artifact com.company:my-plugin:pom:0.0.1-SNAPSHOT -> [Help 1]
pom中插件的唯一引用是在build / plugins部分:
<plugin>
<groupId>com.company</groupId>
<artifactId>my-plugin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<configuration>
<sourceFiles>
<sourceFile>infile.foo</sourceFile>
</sourceFiles>
<outputFile>outpath/myfile.foo</outputFile>
</configuration>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>my-goal</goal>
</goals>
</execution>
</executions>
</plugin>
我已经确认该项目存在于我们的远程存储库中,并且该存储库中的其他依赖项正在解析。但是,其他依赖项不是插件。
我是否需要指定其他配置来解决插件依赖项?有没有一种方法可以帮助我找出更具体地导致这个问题的原因?
答案 0 :(得分:4)
原来我需要在pom中单独指定插件存储库的位置(除了正常指定远程存储库)。我错过了以下区块:
<pluginRepositories>
<pluginRepository>
<id>my-plugin-repo</id>
<url>https://nexus.company.com:8443/path/to/repository/</url>
</pluginRepository>
</pluginRepositories>
答案 1 :(得分:0)
“[警告]缺少com.company:my -plugin:jar:0.0.1-SNAPSHOT的POM,没有可用的依赖项信息”
您确定此插件项目的pom.xml是否存在于您尝试从中提取的插件远程存储库中?如果不是,我可能认为这应该是问题所在。