1

我正在尝试编写自己的 Maven 插件。当我手动 mvn install 插件项目时,我可以毫无问题地使用它,但是从我们的远程 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>

我已经确认该项目存在于我们的远程存储库中,并且该存储库中的其他依赖项正在解决。但是,其他依赖项不是插件。

我需要指定其他配置来解决插件依赖项吗?有没有一种方法可以帮助我更具体地找出导致此问题的原因?

4

2 回答 2

4

原来我需要在 pom 中单独指定插件存储库的位置(除了通常指定远程存储库之外)。我错过了以下块:

<pluginRepositories>
  <pluginRepository>
    <id>my-plugin-repo</id>
    <url>https://nexus.company.com:8443/path/to/repository/</url>
  </pluginRepository>
</pluginRepositories>
于 2013-06-21T21:37:58.283 回答
0

“[警告] com.company:my-plugin:jar:0.0.1-SNAPSHOT 的 POM 丢失,没有可用的依赖信息”

您确定此插件项目的 pom.xml 是否存在于您尝试从中提取的插件远程存储库中?如果不是,我可能认为这应该是问题所在。

于 2013-06-19T20:42:04.593 回答