了解Maven标签

时间:2018-10-16 11:29:14

标签: maven

我在项目中使用的是maven,大多数情况下我仅使用依赖项标签,但是这次我使用了以下标签:

<repositories>
    <repository>
        <id>myrepo</id>
        <name>REPO</name>
        <url>http://host:8081/nexus/content/repositories/repo/</url>
        <layout>default</layout>
    </repository>
    <repository>
        <id>thirdparty</id>
        <name>THIRD</name>
        <url>http://host:8081/nexus/content/repositories/thirdparty/</url>
        <layout>default</layout>
        <releases>
            <enabled>true</enabled>
        </releases>
    </repository>
    <repository>
        <id>repo-snapshots</id>
        <name>REPO-SNAPSHOTS</name>
        <url>http://host:8081/nexus/content/repositories/snapshots/</url>
        <layout>default</layout>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>repo1-snapshots</id>
        <name>REPO1-SNAPSHOTS</name>
        <url>http://host1:8081/nexus/content/repositories/snapshots/</url>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
        </snapshots>
    </repository>
</repositories>

<pluginRepositories>
    <pluginRepository>
        <id>myplugin</id>
        <name>MY-PLUGIN</name>
        <url>http://host:8081/nexus/content/repositories/central/</url>
        <layout>default</layout>
        <releases>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
        </releases>
    </pluginRepository>
</pluginRepositories>

<distributionManagement>
    <repository>
        <id>distr</id>
        <name>DISTR</name>
        <url>http://host:8081/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
        <id>distr</id>
        <name>DISTR</name>
        <url>http://host:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

我知道repositories用于配置我们的远程存储库。

1)但是releases --> enabled = true的用途是什么

2)也是我们说snapshots --> enabled=true而不使用releases时的指示。

3)同样,如果我们说updatePolicy=always,它的含义是什么;如果我们不提这句话,会发生什么情况。

4)pluginRepositories在这里有什么用?以及内部releases标签

5)distributionManagement及其内部标记repositorysnapshotRepository的用途是什么?

1 个答案:

答案 0 :(得分:1)

1)这意味着Maven在此存储库中搜索发行版本(又名非SNAPSHOT版本)。

2)Maven在此存储库中搜索SNAPSHOT版本。

(1)和(2)之所以存在区别是因为,如果没有存储库组,则通常针对不同类型的存储库也将不同。

3)这意味着SNAPSHOTS总是从远程存储库更新(读取:每个内部版本)。标准政策是将下载的SNAPSHOT缓存一天(因此在同一天触发另一个构建将不会再次下载最新的SNAPSHOT)。

4)这些存储库纯粹用于插件的依赖性。

5)这些用于部署您自己构建的工件。