Maven 2 Maven未下载快照

Maven 2 Maven未下载快照,maven-2,archiva,Maven 2,Archiva,我正在尝试使用位于本地网络中的存储库来设置Maven,并且我已经为快照设置了一个存储库,为发布设置了一个存储库(两个都是ApacheArchiva) 从发行版存储库下载包可以正常工作。但是,当我尝试从快照存储库加载快照版本时,当我尝试下载我自己部署的快照时,我总是会出错: [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] --

我正在尝试使用位于本地网络中的存储库来设置Maven,并且我已经为快照设置了一个存储库,为发布设置了一个存储库(两个都是ApacheArchiva)

从发行版存储库下载包可以正常工作。但是,当我尝试从快照存储库加载快照版本时,当我尝试下载我自己部署的快照时,我总是会出错:

[INFO] ------------------------------------------------------------------------  
[ERROR] BUILD ERROR  
[INFO] ------------------------------------------------------------------------  
[INFO] Failed to resolve artifact.  

Missing:  
----------  
1) my.company:product2:jar.lastUpdated:0.0.2-SNAPSHOT

  Try downloading the file manually from the project website.  
[...]

 Path to dependency:   
        1) my.company:product1:war:0.0.1-SNAPSHOT  
        2) my.company:product2:jar.lastUpdated:0.0.2-SNAPSHOT  

 ----------
1 required artifact is missing.

for artifact: 
 my.company:product1:war:0.0.1-SNAPSHOT

from the specified remote repositories:  
  my-internal (http://my-repo:8080/archiva/repository/internal),  
  central (http://repo1.maven.org/maven2),
  my-snapshots (http://my-repo:8080/archiva/repository/snapshots),
该软件包在快照repo中可用,网络已启动,登录工作正常

我的pom.xml如下所示:

 [...]
<repositories>
  <repository>
  <id>my-snapshots</id>
  <name>my name Snapshots Repository</name>
  <url>http://my-snapshots:8080/archiva/repository/snapshots</url>
  <snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</snapshots>
</repository>
<repository>
  <id>my-internal</id>
  <name>my name internal Repository</name>
  <url>http://my-repo:8080/archiva/repository/internal</url>
</repository>
  </repositories>
 [...]

<dependency>
    <groupId>my.company</groupId>
    <artifactId>frontend-api</artifactId>
    <version>0.0.2-SNAPSHOT</version>
    <type>jar.lastUpdated</type>
</dependency>
 [...]
<dependency>
  <groupId>my.company</groupId>
  <artifactId>product2</artifactId>
  <version>0.0.2-SNAPSHOT</version>
</dependency>
[…]
我的快照
我的名字快照存储库
http://my-snapshots:8080/archiva/repository/snapshots
我的内心
我的名字内部存储库
http://my-repo:8080/archiva/repository/internal
[...]
我的公司
前端api
0.0.2-快照
jar.lastUpdated
[...]
我还检查了从快照repo下载的maven-metadata.xml:

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
 <groupId>my.company</groupId>
 <artifactId>product2</artifactId>
 <version>0.0.2-SNAPSHOT</version>
 <versioning>
    <snapshot>
      <buildNumber>7</buildNumber>
     <timestamp>20090824.130209</timestamp>
  </snapshot>
   <lastUpdated>20090824130209</lastUpdated>
 </versioning>
</metadata>

我的公司
产品2
0.0.2-快照
7.
20090824.130209
20090824130209
它显示正确的日期和时间戳(包含此时间戳的包存在于repo中)


我是否缺少有关存储库设置或快照概念的内容?有人有同样的问题吗?或者有人知道关于快照和存储库的详细文档吗?

我的应用程序的依赖项声明是什么样子的?我希望它看起来像这样:

 [...]
<repositories>
  <repository>
  <id>my-snapshots</id>
  <name>my name Snapshots Repository</name>
  <url>http://my-snapshots:8080/archiva/repository/snapshots</url>
  <snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</snapshots>
</repository>
<repository>
  <id>my-internal</id>
  <name>my name internal Repository</name>
  <url>http://my-repo:8080/archiva/repository/internal</url>
</repository>
  </repositories>
 [...]

<dependency>
    <groupId>my.company</groupId>
    <artifactId>frontend-api</artifactId>
    <version>0.0.2-SNAPSHOT</version>
    <type>jar.lastUpdated</type>
</dependency>
 [...]
<dependency>
  <groupId>my.company</groupId>
  <artifactId>product2</artifactId>
  <version>0.0.2-SNAPSHOT</version>
</dependency>

我的公司
:

Maven版本可以包含一个字符串文字,表示项目当前正在进行活动开发。如果版本包含字符串“SNAPSHOT”,那么在安装或发布此组件时,Maven会将此令牌扩展为转换为UTC(协调世界时)的日期和时间值。例如,如果您的项目有一个“1.0-SNAPSHOT”版本,并且您将此项目的工件部署到Maven存储库中,那么如果您要在2008年2月7日晚上11:08部署一个版本,Maven会将此版本扩展到“1.0-20080207-230803-1”。换句话说,当您部署快照时,您不是在发布软件组件;您正在特定时间发布组件的快照


因此,通常不需要lastUpdated属性。

使用-e标志运行mvn以获取更详细的错误消息。

您的settings.xml文件如何

如果pom xml具有以下内容:

<repositories>
   <repository>
   <id>my-snapshots</id>
   <name>my name Snapshots Repository</name>
   <url>http://my-snapshots:8080/archiva/repository/snapshots</url>
   <snapshots>
       <enabled/>
       <updatePolicy/>
       <checksumPolicy/>
   </snapshots>
</repository>

我的快照
我的名字快照存储库
http://my-snapshots:8080/archiva/repository/snapshots
那么setting.xml应该有如下内容:

<server>
    <id>my-snapshots</id>
    <username>user</username>
    <password>pass</password>
    <privateKey>${user.home}/.ssh/id_dsa</privateKey>
    <passphrase>some_passphrase</passphrase>
    <filePermissions>664</filePermissions>
    <directoryPermissions>775</directoryPermissions>
    <configuration></configuration>
  </server>

我的快照
用户
通过
${user.home}/.ssh/id\u dsa
一些密码短语
664
775
1) 存储库用户名和密码必须如上所述

2) 设置和pom中的id标记必须相同:

<id>my-snapshots</id>
我的快照

为什么上次更新的类型是问题?这不正是我想要的:存储库中更新的最后一个快照吗?SNAPSHOT关键字已经向Maven指示它正在开发中,并且将使用最新版本,不需要lastUpdated属性。输出来自运行“mvn-e”。