我正在尝试运行一些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我在研究相关问题之后尝试过的事情:
接下来我应该尝试什么(或者我是否走上了运行Netty示例的正确道路)?
发布于 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文件。
发布于 2016-05-07 18:47:06
在手动将插件添加到plugins文件夹后,将其添加到< plugins >.< /plugins>下的pom中,为我解决了这个问题。
<plugin>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
</plugin>您还可以从、->、Maven、->、Add、Plugin、->、指定组ID和工件ID中右键单击->文件。
发布于 2017-03-16 13:28:47
您可以使用
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>
...https://stackoverflow.com/questions/30111603
复制相似问题