首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入示例时,Eclipse中的ArtifactTransferException

导入示例时,Eclipse中的ArtifactTransferException
EN

Stack Overflow用户
提问于 2015-05-07 21:04:05
回答 4查看 1.1K关注 0票数 1

我正在尝试运行一些Netty示例项目。导入Maven项目后,Eclipse报告了以下问题:

代码语言:javascript
复制
ArtifactTransferException: Could not transfer artifact io.netty:netty-tcnative:jar:${os.detected.classifier}:1.1.33.Fork2 from/to central (http://repo1.maven.org/maven2): Illegal character in path at index 96: http://repo1.maven.org/maven2/io/netty/netty-tcnative/1.1.33.Fork2/netty-tcnative-1.1.33.Fork2-${os.detected.classifier}.jar

我在研究相关问题之后尝试过的事情:

  • 删除最新更新的文件(似乎是ArtifactTransferExceptions的一个常见原因)
  • 手动将os-maven-plugin添加到eclipse plugins文件夹如前所述中。
  • 清洁工程
  • 删除eclipse项目并重新导入

接下来我应该尝试什么(或者我是否走上了运行Netty示例的正确道路)?

EN

回答 4

Stack Overflow用户

发布于 2015-11-21 08:24:37

我认为os-maven插件和eclipse安装有问题。解决方案是手动将os-maven-plugin添加到eclipse plugins文件夹中。在你的问题中,你写道你做了这件事。但是,在您的例子中,我认为eclipse仍然不能运行os-maven-plugin。因此,我建议再次尝试将os-maven-plugin移到eclipse插件文件夹中。

在eclipse的问题报告中,可以找到属性${os.detected.classifier}。Eclipse无法传输工件,因为此属性未进行评估。如果运行mvn包,则计算属性。因此,使用mvn包传输和构建是成功的。

属性${os.detected.classifier}属于允许使用依赖于平台的项目属性的操作系统-maven-插件。Eclipse不计算这些表达式。根据插件自述,您必须将插件下载为jar,并将其放到<ECLIPSE_HOME>/plugins目录中。在我的例子中,使用eclipse插件目录中的jar,我能够在eclipse中成功地执行pom文件。

票数 0
EN

Stack Overflow用户

发布于 2016-05-07 18:47:06

在手动将插件添加到plugins文件夹后,将其添加到< plugins >.< /plugins>下的pom中,为我解决了这个问题。

代码语言:javascript
复制
        <plugin>
            <groupId>kr.motd.maven</groupId>
            <artifactId>os-maven-plugin</artifactId>
        </plugin>

您还可以从、->、Maven、->、Add、Plugin、->、指定组ID和工件ID中右键单击->文件。

票数 0
EN

Stack Overflow用户

发布于 2017-03-16 13:28:47

您可以使用

代码语言:javascript
复制
mvn package -DskipTests

然后它会在开始的时候打印消息

代码语言:javascript
复制
[INFO] ------------------------------------------------------------------------
[INFO] Detecting the operating system and CPU architecture
[INFO] ------------------------------------------------------------------------
[INFO] os.detected.name: linux
[INFO] os.detected.arch: x86_64
[INFO] os.detected.classifier: linux-x86_64
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:

然后停止mvn命令,因为您已经获得了正确的属性值,停止了命令,否则您无法在太多的打印中找到消息,然后在父项目的pom.xml文件中添加以下内容:

代码语言:javascript
复制
<properties>
    <os.detected.name>linux</os.detected.name>
    <os.detected.arch>x86_64</os.detected.arch>
    <os.detected.classifier>linux-x86_64</os.detected.classifier>
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30111603

复制
相关文章

相似问题

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