【问题标题】:Maven adds '-windows' to the artifact name when downloading a snapshot artifactMaven 在下载快照工件时将“-windows”添加到工件名称
【发布时间】:2010-07-15 07:25:12
【问题描述】:

我已向本地 Nexus Maven 存储库添加了一堆工件。
当我构建我的项目时,我收到以下错误:

[INFO] 正在扫描项目...
[信息] --------------------------------------------- -------------------------
[INFO] 构建 pronto-web Java EE 6 Webapp
[INFO] 任务段:[验证]
[信息] --------------------------------------------- -------------------------
[信息] [资源:资源 {执行:默认资源}]
[警告] 使用平台编码(实际上是 Cp1252)复制过滤的资源,即构建依赖于平台!
[INFO] 复制 4 个资源
[信息] [编译器:编译 {执行:默认编译}]
[警告] 文件编码尚未设置,使用平台编码 Cp1252,即构建依赖于平台!
[INFO] 将 1 个源文件编译到 C:\Source\Pronto\pronto\pronto-web\target\classes
[信息] [antrun:run {执行: remove-javax}]
[INFO] 执行任务
[INFO] 已执行的任务
[INFO] [gwt:compile {执行:默认}]
[INFO] 使用来自项目依赖项的 GWT jar:20100714-SNAPSHOT
[警告] 您不应将 gwt-dev 声明为项目依赖项。这可能会引入复杂的依赖冲突
下载:http://mercury:8980/nexus/content/groups/public-snapshots/com/google/gwt/gwt-dev/20100714-SNAPSHOT/gwt-dev- 20100714-20100715.053026-1-windows.jar
[信息] --------------------------------------------- -------------------------
[错误] 构建错误
[信息] --------------------------------------------- -------------------------
[INFO] 工件未找到 - 无法在存储库中找到资源

尝试从项目网站手动下载文件。

然后,使用以下命令安装它:
mvn install:install-file -DgroupId=com.google.gwt -DartifactId=gwt-dev -Dversion=20100714-20100715.053026-1 -Dclassifier=windows -Dpackaging=jar -Dfile=/path/to/file

或者,如果您托管自己的存储库,则可以在其中部署文件:
mvn deploy:deploy-file -DgroupId=com.google.gwt -DartifactId=gwt-dev >-Dversion=20100714-20100715.053026-1 -Dclassifier=windows -Dpackaging=jar -Dfile=/path/to/file -Durl=[ url] -DrepositoryId=[id]

com.google.gwt:gwt-dev:jar:20100714-20100715.053026-1

来自指定的远程存储库:
发布 (http://mercury:8980/nexus/content/groups/public),
全部 (http://mercury:8980/nexus/content/groups/all),
快照 (http://mercury:8980/nexus/content/groups/public-snapshots)

http://mercury:8980/nexus/content/groups/public-snapshots/com/google/gwt/gwt-dev/20100714-SNAPSHOT/gwt-dev-20100714-20100715.053026-1-windows.jar
[信息] --------------------------------------------- -------------------------
[INFO] 有关更多信息,请使用 -e 开关运行 Maven
[信息] --------------------------------------------- -------------------------
[INFO] 总时间:8 秒
[INFO] 完成时间:2010 年 7 月 15 日星期四 08:57:29 CEST
[INFO] 最终内存:50M/614M
[信息] ------------------------------------------------------------ -------------------------

有人知道为什么 maven 认为应该在工件名称中添加“-windows”吗? (下载:http://mercury:8980/nexus/content/groups/public-snapshots/com/google/gwt/gwt-dev/20100714-SNAPSHOT/gwt-dev-20100714-20100715.053026-1-windows.jar)

如果我浏览存储库,它包含工件但没有“-windows”后缀。

此工件的旧版本依赖于平台,并使用“windows”或“linux”或“mac”作为分类器,但最近的版本与平台无关,我的 pom 中没有任何此类分类器。

PS: 我在协议和冒号之间的每个 URL 中添加了一个空格,因为我还没有获得足够的声誉来发布链接。

【问题讨论】:

  • 尝试运行 mvn -U - 也许 maven 依赖于旧的快照 POM。在您的情况下,“windows”可能是一个分类器,它必须在您的 POM 中的某个地方进行配置,仔细分析它们。

标签: maven-2 repository nexus


【解决方案1】:

以下依赖必须在某处声明,很可能是传递依赖:

<dependency>
  <groupId>com.google.gwt</groupId>
  <artifactId>gwt-dev</artifactId>
  <version>20100714-SNAPSHOT</version>
  <classifier>windows</classifier>
<dependency>

如果工件不再依赖于平台,我怀疑是一个糟糕的 pom。

您可以使用最近的快照吗?

【讨论】:

  • 感谢 Pascal 和 Lexicore 的快速回复。我确信在我部署到存储库的工件和我的项目 pom 中的任何地方都没有这样的分类元素(仅在公共存储库中的一些旧版本中)。为了以防万一,我删除了本地 .m2 目录中的 com/google 子目录,现在问题消失了。也许我应该将其重命名以供进一步调查,但没想到这真的解决了问题。
  • 在一些 Maven 配置更改、工件更新并切换到 Maven 3 之后,我再次遇到此错误。这次清理 .m2 目录不起作用。看来,gwt-maven-plugin 导致了这个错误。我将它从 1.2 更新到 1.3-SNAPSHOT,现在错误又消失了。
  • @devde:比较两个版本的插件的 pom 会很有趣。但无论如何,这很奇怪。也许您应该将此评论作为答案发布并接受它。
猜你喜欢
  • 1970-01-01
  • 2020-02-19
  • 1970-01-01
  • 1970-01-01
  • 2022-12-15
  • 1970-01-01
  • 2010-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多