非可解析的父POM

6

我正在尝试按照http://www.mulesoft.org/documentation/display/current/Creating+a+Connector+Project教程开发Mule的自定义连接器。

如教程所示,我通过命令行执行以下命令来创建项目:

mvn archetype:generate
    -DarchetypeGroupId=org.mule.tools.devkit
    -DarchetypeArtifactId=mule-devkit-archetype-cloud-connector
    -DarchetypeVersion=3.4.3
    -DgroupId=org.hello
    -DartifactId=hello-connector
    -Dversion=1.0-SNAPSHOT
    -DmuleConnectorName=Hello
    -Dpackage=org.hello
    -DarchetypeRepository=http://repository.mulesoft.org/releases

将项目导入到Mule Studio后,我在pom.xml文件中的父标签附近遇到以下错误。

Project build error: Non-resolvable parent POM:
        Could not transfer artifact
        org.mule.tools.devkit:mule-devkit-parent:pom:3.4.3 from/to
        mulesoft-releases (http://repository.mulesoft.org/releases/):
        connection timed out to
        http://repository.mulesoft.org/releases/org/mule/tools/devkit/mule-devkit-parent/3.4.3/mule-devkit-parent-3.4.3.pom
        and 'parent.relativePath' points at wrong local POM.

这是我的pom.xml文件。
<?xml version="1.0" encoding="UTF-8"?>
project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.hello</groupId>
    <artifactId>hello-connector</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>mule-module</packaging>
    <name>Hello Connector</name>

    <parent>
        <groupId>org.mule.tools.devkit</groupId>
        <artifactId>mule-devkit-parent</artifactId>
        <version>3.4.3</version>
    </parent>

    <properties>
        <junit.version>4.9</junit.version>
        <mockito.version>1.8.2</mockito.version>
        <jdk.version>1.7</jdk.version>
        <category>Community</category>
        <licensePath>LICENSE.md</licensePath>
        <devkit.studio.package.skip>false</devkit.studio.package.skip>
    </properties>

    <scm>
        <connection>scm:git:git://github.com:mulesoft/hello-connector.git</connection>
        <developerConnection>scm:git:git@github.com:mulesoft/hello-connector.git</developerConnection>
        <url>http://github.com/mulesoft/hello-connector</url>
    </scm>

    <repositories>
        <repository>
            <id>mulesoft-releases</id>
            <name>MuleSoft Releases Repository</name>
            <url>http://repository.mulesoft.org/releases/</url>
            <layout>default</layout>
        </repository>
        <repository>
            <id>mulesoft-snapshots</id>
            <name>MuleSoft Snapshots Repository</name>
            <url>http://repository.mulesoft.org/snapshots/</url>
            <layout>default</layout>
        </repository>
    </repositories>

</project>

我已将JDK版本更改为1.7。在自动生成的POM文件中,它是1.6。请忽略标题中的任何错误,可能是格式问题。我尝试了这里提到的各种解决方案,但仍无法解决问题。


我可以毫无问题地获取https://repository.mulesoft.org/nexus/content/repositories/releases/org/mule/tools/devkit/mule-devkit-parent/3.4.3/mule-devkit-parent-3.4.3.pom。 您能从浏览器访问它吗?实际消息中的URL错误文本中是否有空格,还是复制粘贴问题?在(mule/_tools)中。 - skegg99
是的,我可以从浏览器访问该链接。URL 中的空格是复制粘贴问题。mule-devkit-parent-3.4.3 存在于我的本地存储库中。有没有这个问题的临时解决方案? - Sheikh Zubair
我认为,作为一个临时解决方案,您可能希望下载父项目的源代码,将其添加到您的工作区并在<parent><relativePath>中设置路径... - skegg99
1个回答

4

您的计算机和互联网之间可能存在防火墙。您必须要配置Java使用这个代理。

或者您需要手动下载主POM并将其安装到本地m2仓库中。请参考这个问题: 如何在Maven 2中手动安装一个构件?

由于您只需要安装一个POM,您需要欺骗mvn install:install-file命令:

mvn install:install-file -Dfile=<path-to-pomfile> -Dpackaging=pom -DpomFile=<path-to-pomfile>

该命令只会安装POM本身。


父POM正在下载到我的本地m2存储库。我的项目的自动生成的pom.xml文件在<parent>标记中显示错误。 您提到的命令中pom文件的路径应该使用哪一个?我尝试使用m2存储库中父POM的路径,但它导致构建失败。 - Sheikh Zubair
你的m2仓库中不应该有有效的父POM,因为出现了“无法传输工件”的错误。请再次确认Maven是否真正从http://repository.mulesoft.org/releases/下载了org.mule.tools.devkit:mule-devkit-parent:pom:3.4.3?文件内容是否正确?校验和是否匹配? - Aaron Digulla
我有一个名为"mule-devkit-parent-3.4.3"的文件,位于路径"C:\Users\sh265993.m2\repository\org\mule\tools\devkit\mule-devkit-parent\3.4.3"。它的文件扩展名是.pom。我检查了它的内容,对我来说看起来是正确的。 - Sheikh Zubair
然后元数据已过时。将 C:\Users\sh265993\.m2\repository\org\mule\tools\devkit\mule-devkit-parent 移动到其他地方,然后再次运行 Maven。 - Aaron Digulla
我清空了.m2仓库并从头开始。错误得到了解决。但是现在我无法像教程中所示那样在我的Mule Studio中安装生成的UpdateSite.zip文件。我已经添加了路径“Hello-Connector - file:/D:/Mule/Examples/abc/hello-connector/target/UpdateSite.zip”,但它报错说找不到该路径。 - Sheikh Zubair

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接