repository vs. pluginRepository

时间:2017-08-08 01:19:54

标签: maven

以前在很少的地方都会问过这个问题。

但答案含糊不清。

所以让我再问一次。

Apache Maven在http://maven.apache.org/ref/3.5.0/maven-model/maven.html

中说
  • 存储库/存储库*列表(很多)列表 远程存储库,用于发现依赖关系和扩展。
  • pluginRepositories / pluginRepository * List (很多) 用于发现构建插件的远程存储库列表 和报告。

但有人可以解释那是什么。我发现了依赖项。但是"发现构建和报告的插件是什么意思。"和"发现扩展" ?

1 个答案:

答案 0 :(得分:1)

PluginRepository是maven搜索maven插件的地方。这就是它提到构建(构建生命周期)和报告(站点生命周期)的原因。例如。这就是maven-compile-pluginmaven-surefire-plugin存在的位置

普通存储库用于应用程序的依赖项,即<dependencies><dependencyManagement>部分。它可以是您的junitcommons-logging或您需要的任何一个罐子。

通常它们都可以指向相同的存储库,实际上默认情况下,它们都指向Maven Central,但是您可以在那里拥有一些特殊的位置,或者在存储库中具有不同的更新策略。

我在一个spring项目中找到了一个例子,你可以看到它们都被使用(在底部):https://github.com/spring-projects/spring-data-jpa/blob/master/pom.xml

<repositories>
    <repository>
        <id>spring-libs-snapshot</id>
        <url>https://repo.spring.io/libs-snapshot</url>
    </repository>
</repositories>

<pluginRepositories>
    <pluginRepository>
        <id>spring-plugins-release</id>
        <url>https://repo.spring.io/plugins-release</url>
    </pluginRepository>
</pluginRepositories>

它们指向两个单独的URL,因此maven插件和依赖项基本上取自两个不同的地方