我正在尝试Cloud9 ide,我成功地分叉了我的github存储库并将settings.xml放到了$ HOME / .m2 /目录中。
当我尝试构建 mvn clean install 时,我收到以下错误
[INFO] Error building POM (may not be this project's POM).
Project ID: com.temenos.interaction:com.temenos.interaction.rimdsl.parent
Reason: Cannot find layout implementation corresponding to: 'p2' for remote repository with id: 'p2.eclipse.kepler'. for project com.temenos.interaction:com.temenos.interaction.rimdsl.parent
[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.reactor.MavenExecutionException: Cannot find layout implementation corresponding to: 'p2' for remote repository with id: 'p2.eclipse.kepler'. for project com.temenos.interaction:com.temenos.interaction.rimdsl.parent
at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:404)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:272)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.project.ProjectBuildingException: Cannot find layout implementation corresponding to: 'p2' for remote repository with id: 'p2.eclipse.kepler'. for project com.temenos.interaction:com.temenos.interaction.rimdsl.parent
at org.apache.maven.project.DefaultMavenProjectBuilder.buildArtifactRepositories(DefaultMavenProjectBuilder.java:949)
at org.apache.maven.project.DefaultMavenProjectBuilder.assembleLineage(DefaultMavenProjectBuilder.java:1206)
at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:823)
at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromSourceFileInternal(DefaultMavenProjectBuilder.java:508)
at org.apache.maven.project.DefaultMavenProjectBuilder.build(DefaultMavenProjectBuilder.java:200)
at org.apache.maven.DefaultMaven.getProject(DefaultMaven.java:604)
at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:487)
at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:560)
at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:560)
at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:391)
... 12 more
Caused by: org.apache.maven.artifact.InvalidRepositoryException: Cannot find layout implementation corresponding to: 'p2' for remote repository with id: 'p2.eclipse.kepler'.
at org.apache.maven.project.ProjectUtils.getRepositoryLayout(ProjectUtils.java:157)
at org.apache.maven.project.ProjectUtils.buildArtifactRepository(ProjectUtils.java:110)
at org.apache.maven.project.ProjectUtils.buildArtifactRepositories(ProjectUtils.java:56)
at org.apache.maven.project.DefaultMavenProjectBuilder.buildArtifactRepositories(DefaultMavenProjectBuilder.java:942)
... 21 more
Caused by: org.codehaus.plexus.component.repository.exception.ComponentLookupException: Component descriptor cannot be found in the component repository: org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayoutp2.
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:323)
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:440)
at org.apache.maven.project.ProjectUtils.getRepositoryLayout(ProjectUtils.java:153)
... 24 more
现在我的问题是如何启用从不同存储库下载工件? 是否有Cloud9工作区的任何设置?
答案 0 :(得分:10)
您的问题可能出在Maven版本上。
如果您在终端上执行:
$ dpkg --get-selection | grep -i maven
如果你有maven2
这样的东西,你已经在你的环境中安装了Maven的旧版本2。显然,某些目标或插件仅适用于后一版本3。
因此,在您的Cloud9环境中,您可以安装版本3,如下所示:
$ sudo apt-get remove maven2
$ sudo apt-get install maven
$ export MAVEN_OPTS="-Xmx256m"
最后一个命令是为了避免你的maven进程在超过内存边界时被Cloud9杀死,可能它会发生在你身上。 [碰巧发生在我身上:P]
您可以在此处详细了解这一点:How to use Cloud9 with Maven?
答案 1 :(得分:0)
其他用户也遇到过此问题。请参阅Cloud 9网站上的以下主题。其中一位用户在那里写了一个小片段,它应该适合你。 enter link description here
答案 2 :(得分:0)
根据我的理解,您的path = path.replace(" ","\u0020");
引用了pom.xml
中定义的存储库ID,使您依赖于您用于构建的平台,从而使Maven的一个点无效:使项目易于在任何机器上构建。
对你来说,你是define your repositories inside your project's pom.xml
而不是吗?据我记忆,语法大致相同。
POM参考,存储库部分:https://maven.apache.org/pom.html#Repositories