【问题标题】:How to fetch artifacts from own repo using maven?如何使用 maven 从自己的仓库中获取工件?
【发布时间】:2014-03-24 13:53:45
【问题描述】:

如何创建一个使用 maven 从我的存储库中获取工件的简单项目?这些工件将保存到哪里 - 我的默认 Maven 存储库?

我正在使用 Apache Archiva。

【问题讨论】:

  • 您的问题没有包含足够的信息来获得正确的方法。因为如果您已经在使用存储库管理器,为什么不将这些信息放在问题中?

标签: maven repository archiva


【解决方案1】:

只需开始使用 Nexus 之类的存储库管理器即可。请根据以下配置您的 settings.xml 文件:

<settings>
  <mirrors>
    <mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>URL OF your ARCHIVA SERVER</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <id>nexus</id>
      <!--Enable snapshots for the built in central repo to direct -->
      <!--all requests to nexus via the mirror -->
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
     <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <!--make the profile active all the time -->
    <activeProfile>nexus</activeProfile>
  </activeProfiles>
</settings>

正在下载的工件首先存储在 Archiva 中,当然也存储在您的硬盘上$HOME/.m2/repository

如果您想将工件部署到档案中,您需要在 pom 文件中配置 distributionManagement,如下所示:

 <distributionManagement>
    <repository>
      <id>releases</id>
      <name>Archiva RElease repo</name>
      <url>http://URL OF YOUR ARCHIVA/releases/</url>
    </repository>
    <snapshotRepository>
      <id>snapshots<id>
      <name>Archiva Snapshots repo</name>
      <url>http://URL OF YOUR ARCHIVA/snapshots/</url>
    </snapshotRepository>
    ...
  </distributionManagement>
  ...

要对此进行测试,您可以使用mvn deploy 查看是否正在将工件部署到快照存储库。您可以将测试项目的版本更改为1.0 并重做mvn deploy,它将尝试将工件部署到发布存储库中。

【讨论】:

  • 信息严重不足!我已经在服务器上运行了档案……接下来呢?
  • 对不起,没有冒犯你的意思。谢谢您的帮助。我仍然不明白这一切是如何运作的。为什么关于镜像的信息需要在设置 XML 中?项目的 Pom.xml 起什么作用?还是只是在设置 xml 中设置了所有内容?这是我构建服务器上的设置 xml 吗?
  • 为什么这些信息在 settings.xml 中的想法是因为您可能需要对存储库进行身份验证才能将某些内容部署到其中,这会导致您的 settings.xml 中有密码,通常本地化 @987654329 @所以它受到保护。是的,您需要在构建服务器上单独设置一个 settings.xml 文件。如果您真的需要了解部分内容,请开始阅读有关 Maven 的文档,例如 sonatype.com/resources/books,当然还有 maven.apache.org(一些指南等)。 Maven 不是一个简单的玩具工具。
猜你喜欢
  • 2014-12-01
  • 2013-10-15
  • 1970-01-01
  • 2018-11-24
  • 2011-08-20
  • 2014-04-24
  • 1970-01-01
  • 1970-01-01
  • 2014-12-20
相关资源
最近更新 更多