如何使用maven从自己的repo中获取工件?

时间:2014-03-24 13:53:45

标签: maven repository archiva

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

我正在使用Apache Archiva。

1 个答案:

答案 0 :(得分:0)

只需开始使用像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上。

如果您想将工件部署到archiva,您需要在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查看是否将artiacts部署到快照存储库。您可以将测试项目的版本更改为1.0并重做mvn deploy,它将尝试将工件部署到发布存储库中。