存储库和pluginrepository之间的区别

And*_*Dev 52 maven

我的Android Maven项目pom.xml包含以下条目.现在一切正常.<repositories>条目和<pluginRepositories>条目之间有什么区别.

<repositories>
        <repository>
            <id>my-repo</id>
            <url>http://10.10.10.230:8081/nexus/content/groups/public</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>my-repo</id>
            <name>my-repo</name>
            <url>http://10.10.10.230:8081/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>
Run Code Online (Sandbox Code Playgroud)

Sah*_* Mj 22

正如@ otakun85所说,根本没有技术差异.这是因为插件具有与普通工件相反的不同配置 - >行为.有关更多详细信息,请参阅repository vs. pluginRepository.

还要检查maven-users邮件列表档案,它提供了很好的解释.

  • 说“没有技术差异”有点误导。如果您有自己的包管理器并且没有设置 pluginRepository,则不会回到“常规”存储库。 (3认同)

Raj*_*han 7

Maven将使用配置的pluginRepository解决插件依赖关系.使用存储库解析其他工件依赖性(例如,父pom).注意:默认情况下,maven central上可用的内容将被解析,因此您通常不需要为这些内容包含存储库.

例如,如果您有一个maven项目,该项目指定父pom和插件依赖项,这两个项目都存在于同一个存储库中,则您仍必须同时指定存储库pluginRepository.如果您只配置pluginRepository,那么如果您只配置存储库, maven会因为父pom而导致"Unresolvable X "错误,反之亦然.