Netty 导入示例时Eclipse项目中的ArtifactTransferException
我正在尝试运行一些棘手的示例项目。导入Maven项目后,Eclipse报告以下问题:Netty 导入示例时Eclipse项目中的ArtifactTransferException,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 9
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
我在研究相关问题后尝试过的事情:
- 删除最近更新的文件(似乎是artifactTransferException的常见原因)
- 手动将os maven插件添加到eclipse插件文件夹
- 清理项目
- 删除eclipse项目并重新导入
下一步我应该尝试什么(或者我是否正在沿着正确的道路运行Netty示例)?我认为os maven插件和eclipse安装存在问题。解决方案是手动将os maven插件添加到eclipse插件文件夹中。在你的问题中,你写道你已经做到了。然而,在您的情况下,我认为eclipse仍然无法运行os maven插件。因此,我建议再次尝试将os maven插件移动到eclipse插件文件夹中 在eclipse的问题报告中,您可以找到属性
${os.detected.classifier}
。Eclipse无法传输工件,因为未计算此属性。如果运行mvn包,则会计算属性。因此,使用mvn包,传输和构建是成功的
属性
${os.detected.classifier}
属于允许使用平台相关项目属性的。Eclipse不计算这些表达式。根据需要,您必须将插件作为jar下载,并将其放入/plugins
目录中。在我的eclipse插件目录中的jar中,我能够在eclipse中成功地执行pom文件。在手动将插件添加到plugins文件夹后,将其添加到 <plugin>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
</plugin>
马文
os maven插件
您还可以在PackageExplorer->Maven->Add Plugin->specify group ID and artifact ID中右键单击pom.xml文件。您可以使用
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文件中添加以下内容:
<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>
...
linux
x86_64
linux-x86_64
...
我也遇到了同样的问题。通过添加以下内容解决了此问题:
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>1.4.0.Final</version>
</extension>
</extensions>
马文
顺便提一下,我可以从命令行使用“mvn package”构建包。