DistributionManagement和Repositories中的不同存储库

use*_*911 5 java nexus maven

<DistributionManagement> ... </DistributionManagement> and <Repositories> ... <Repositories>章节中,可以有一个

<Repository> ... </Repository>
Run Code Online (Sandbox Code Playgroud)

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

<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>
Run Code Online (Sandbox Code Playgroud)

<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>
Run Code Online (Sandbox Code Playgroud)

Sub*_*shi 6

分销管理

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

知识库

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

使用存储库布局进行部署

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

<project>
    ...
    <distributionManagement>
        <repository>
              <id>myrepository</id>
              <url>file:D:/repository/</url>
        </repository>
      </distributionManagement>
</project>       
Run Code Online (Sandbox Code Playgroud)

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

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

mvn deploy
Run Code Online (Sandbox Code Playgroud)

网站分发

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

pom.xml,配置在distributionManagement 标记内部署站点的位置 .

<distributionManagement>
    <site>
      <id>mkyongserver</id>
      <url>dav:http://127.0.0.1/sites/</url>
    </site>
</distributionManagement>
Run Code Online (Sandbox Code Playgroud)

搬迁

项目不是静态的; 它们是生物(或死亡的东西,视情况而定).随着项目的发展,一个常见的事情就是他们被迫搬到更合适的地方.例如,当你的下一个非常成功的开源项目在Apache保护伞下运行时,最好让你的用户单独将项目重命名为org.apache:my-project:1.0.除了指定新地址外,提供解释原因的消息也是一种很好的形式.

存储库是符合Maven存储库目录布局的工件集合.为了成为Maven存储库工件,POM文件必须位于结构$ BASE_REPO/groupId/artifactId/version/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>
Run Code Online (Sandbox Code Playgroud)