我正在尝试执行一个自定义的ant任务,该任务在一个不在Maven Central下的jar中定义,因此我为此创建了一个私有存储库。
存储库的定义类似于此,它还托管其他“私人”罐子,这些罐子是完美发现的:
<repositories>
<repository>
<id>repository.com</id>
<name>repository.com</name>
<url>http://repository.com/maven/</url>
</repository>
</repositories>
现在问题:
虽然在文档中声明了在&lt; plugin&gt;中定义依赖项。只有部分,我发现我还需要在泛型&lt; dependencies&gt;内部定义依赖关系。 pom文件。
所以实际上是这样的,它复制了依赖描述:
<dependencies>
<dependency>
<groupId>org.bitbucket.infinitekind</groupId>
<artifactId>appbundler</artifactId>
<version>1.0ea</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>local-install</id>
<phase>install</phase>
<configuration>
<target>
<taskdef name="appbundler" onerror="fail" classpathref="maven.plugin.classpath" classname="com.oracle.appbundler.AppBundlerTask"/>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.bitbucket.infinitekind</groupId>
<artifactId>appbundler</artifactId>
<version>1.0ea</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
这是预期的行为还是我遗失了什么?
修改
即便如此,依赖性也未得到满足。 虽然我可以清楚地看到(由于通用的依赖性)jar被下载并放在〜/ .m2存储库中,但是ant任务仍然不理解它:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (local-install) on project cmmanager: Execution local-install of goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run failed: Plugin org.apache.maven.plugins:maven-antrun-plugin:1.8 or one of its dependencies could not be resolved: Failure to find org.bitbucket.infinitekind:appbundler:jar:1.0ea in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]
答案 0 :(得分:1)
嗯,经过一番挖掘后,我找到了答案。问题是插件依赖关系不是通过存储库部分解决,而是通过pluginRepositories部分解决。 所以这将解决问题:
<pluginRepositories>
<pluginRepository>
<id>repository.com</id>
<url>http://repository.com/maven/</url>
</pluginRepository>
</pluginRepositories>