首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DistributionManagement和存储库中的不同存储库

DistributionManagement和存储库中的不同存储库
EN

Stack Overflow用户
提问于 2015-09-11 04:21:53
回答 1查看 12.5K关注 0票数 5

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

代码语言:javascript
复制
<Repository> ... </Repository>

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

代码语言:javascript
复制
<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>

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

发布于 2015-09-11 05:19:54

分销管理

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

仓库

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

使用存储库布局的部署

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

代码语言:javascript
复制
<project>
    ...
    <distributionManagement>
        <repository>
              <id>myrepository</id>
              <url>file:D:/repository/</url>
        </repository>
      </distributionManagement>
</project>       

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

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

代码语言:javascript
复制
mvn deploy

站点分布

除了分发到存储库之外,distributionManagement还负责定义如何部署项目的站点和文档。

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

代码语言:javascript
复制
<distributionManagement>
    <site>
      <id>mkyongserver</id>
      <url>dav:http://127.0.0.1/sites/</url>
    </site>
</distributionManagement>

重定位

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

Repositories

存储库是遵循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>和一个<snapshotRepository>子级

如何声明代理

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

代码语言:javascript
复制
<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>
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32515410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档