导入示例时Eclipse项目中的ArtifactTransferException

时间:2015-05-07 21:04:05

标签: netty

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

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

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

  • 删除lastupdated文件(似乎是ArtifactTransferExceptions的常见原因)
  • 手动将os-maven-plugin添加到eclipse插件文件夹as described here
  • 清洁项目
  • 删除eclipse项目并重新导入

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

4 个答案:

答案 0 :(得分:0)

我认为os-maven-plugin和你的eclipse安装存在问题。解决方案是手动将os-maven-plugin添加到eclipse插件文件夹中。在你的问题中你写道你已经完成了这个。但是,在你的情况下,我认为eclipse仍然无法运行os-maven-plugin。因此,我建议再次尝试将os-maven-plugin移动到eclipse插件文件夹。

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

属性${os.detected.classifier}属于os-maven-plugin,允许使用与平台相关的项目属性。 Eclipse不评估这些表达式。根据{{​​3}},您必须将插件下载为jar并将其放入<ECLIPSE_HOME>/plugins目录中。在我的情况下使用我的eclipse插件目录中的jar,我能够在eclipse中成功执行pom文件。

答案 1 :(得分:0)

手动将插件添加到plugins文件夹后,将其添加到&lt;下的pom中。插件&gt; ......&lt; /插件&GT;为我解决了这个问题。

        <plugin>
            <groupId>kr.motd.maven</groupId>
            <artifactId>os-maven-plugin</artifactId>
        </plugin>

您也可以右键单击Package Explorer中的pom.xml文件 - &gt; Maven - &gt;添加插件 - &gt;指定组ID和工件ID。

答案 2 :(得分:0)

你可以使用

mvn package -DskipTests
然后它会在开头打印消息

[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文件中添加以下内容: p>

<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>
...

答案 3 :(得分:0)

我遇到了同样的问题。通过添加:

解决了这个问题
<extensions>
    <extension>
        <groupId>kr.motd.maven</groupId>
        <artifactId>os-maven-plugin</artifactId>
        <version>1.4.0.Final</version>
    </extension>
</extensions>

在标签内。问题请参见此处:https://github.com/trustin/os-maven-plugin