DistributionManagement和Repositories中的不同存储库

时间:2015-09-11 04:21:54

标签: java maven nexus

<DistributionManagement> ... </DistributionManagement> and <Repositories> ... <Repositories>部分,可以有

<Repository> ... </Repository>

定义。这两个定义有什么区别?这是一个例子:

<distributionManagement>

                <downloadUrl>https://github.com/marytts/marytts/releases</downloadUrl>
                <repository>
                        <id>bintray</id>
                        <url>https://api.bintray.com/maven/marytts/marytts/marytts</url>
                </repository>
                <snapshotRepository>
                        <id>bintray</id>
                        <url>http://oss.jfrog.org/artifactory/oss-snapshot-local</url>
                </snapshotRepository>
        </distributionManagement>

<repositories>
        <repository>
                <id>marytts-dependencies</id>
                <name>marytts-dependencies</name>
                <releases>
                        <enabled>true</enabled>
                </releases>
                <snapshots>
                        <enabled>false</enabled>
                </snapshots>
                <url>file://${project.local.repository.path}</url>
        </repository>
        <repository>
                <id>central</id>
                <name>jcenter</name>
                <releases>
                        <enabled>true</enabled>
                </releases>
                <snapshots>
                        <enabled>false</enabled>
                </snapshots>
                <url>http://jcenter.bintray.com</url>
        </repository>
</repositories>

1 个答案:

答案 0 :(得分:6)

分销管理

  

分配管理就像听起来一样:它管理着   分发整个生成的工件和支持文件   构建过程。首先从最后一个元素开始:

<强>存储库

  

存储库元素在POM中指定位置的位置   以及Maven可以下载远程工件以供其使用的方式   当前项目,distributionManagement指定这个(以及如何)的位置   部署时,项目将到达远程存储库。该   如果存储库元素将用于快照分发   snapshotRepository未定义。

使用存储库布局进行部署

要使用maven布局部署文件,您应该定义分发管理位置:

<project>
    ...
    <distributionManagement>
        <repository>
              <id>myrepository</id>
              <url>file:D:/repository/</url>
        </repository>
      </distributionManagement>
</project>       

然后,您只需执行以下命令即可在文件系统位置复制工件

Maven命令在本地文件系统中部署文件

mvn deploy

网站分发

  

分发到存储库不仅仅是分发管理   负责定义如何部署项目的站点和   文档。

pom.xml中,配置在distributionManagement代码中部署网站的位置。

<distributionManagement>
    <site>
      <id>mkyongserver</id>
      <url>dav:http://127.0.0.1/sites/</url>
    </site>
</distributionManagement>

<强>重定位

  

项目不是静态的;他们是生物(或死亡的东西,如   案件可能是)。随着项目的发展,常见的事情是   他们被迫搬到更合适的地方。例如,   当你的下一个非常成功的开源项目移动到   阿帕奇伞,最好让你的用户作为单挑   该项目正在重命名为org.apache:my-project:1.0。除了   指定新地址,它也是提供消息的好形式   解释原因。

<强>存储库

  

存储库是遵循Maven的工件集合   存储库目录布局。为了成为Maven存储库   工件,POM文件必须存在于结构中   $ BASE_REPO /的groupId / artifactId的/版本/ artifactId的-version.pom。   $ BASE_REPO可以是本地(文件结构)或远程(基本URL);该   剩下的布局将是一样的。存储库作为一个地方存在   收集和存储工件。每当项目依赖于   一个神器,Maven将首先尝试使用本地副本   指定的工件。如果该工件在本地不存在   然后,它将尝试从远程存储库下载。   POM中的存储库元素指定那些备用元素   要搜索的存储库。

     

存储库是Maven最强大的功能之一   社区。默认的中央Maven存储库依然存在   http://repo.maven.apache.org/maven2/。文物的另一个来源不是   但在iBiblio中是Codehaus快照回购。

请记住,您只能在<repository>

中添加一个<snapshotRepository>和一个<distributionManagement>子项

如何申报代理

转到Maven-> conf-> setting.xml文件并添加代理

<proxies>
    <proxy>
      <id>myproxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>global.proxy.mycompany.com</host>
      <port>8000</port>
      <username></username>
      <password></password>
      <nonProxyHosts>localhost,127.0.0.1</nonProxyHosts>
    </proxy>
 </proxies>