Maven无法找到codehaus工件org.codehaus:codehaus-parent

所以codehaus关闭了(周末,显然): https ://www.codehaus.org/

现在它在这里说“Maven:所有存储库都被镜像到Central,我们的Nexus由Sonatype托管”。 如果我正确地阅读这个,这意味着它应该继续工作(并且因为Central是默认存储库,我甚至不应该进行任何更改)。

然而,我遇到了一个用于编译的Maven项目(在关闭之前),但现在失败了:

[INFO] Error building POM (may not be this project's POM). Project ID: org.codehaus.groovy:groovy-eclipse-compiler:maven-plugin:2.9.1-01 Reason: Cannot find parent: org.codehaus:codehaus-parent for project: org.codehaus.groovy:groovy-eclipse-compiler:maven-plugin:2.9.1-01 for project org.codehaus.groovy:groovy-eclipse-compiler:maven-plugin:2.9.1-01 

这是我的pom.xml的精简版:

  4.0.0 com.hp device-state-service war 1.0.0 device-state-service  3.2.0.RELEASE 2.3.7 0.7-groovy-2.0 1.12.2 ...   ...  org.codehaus.groovy groovy-all ${groovy-all.version}  ...  org.projectlombok lombok ${lombok.version} provided  ...  org.spockframework spock-core ${spock-core.version} test  ...  org.codehaus.groovy.modules.http-builder http-builder 0.7 test  ...   dss   src/main/resources     src/test/resources     org.apache.maven.plugins maven-resources-plugin 2.6  UTF-8    org.apache.maven.plugins maven-compiler-plugin 3.1  groovy-eclipse-compiler false  lombok.core.Agent  true 1.6 1.6 UTF-8    org.codehaus.groovy groovy-eclipse-compiler 2.9.1-01   org.codehaus.groovy groovy-eclipse-batch 2.3.7-01   org.projectlombok lombok ${lombok.version}    ...     dss  false  deliverable dss      org.codehaus.mojo rpm-maven-plugin 2.1-alpha-1    rpm     ... ${deliverable} ${pom.version} ${BUILD_NUMBER} Search: RPM package   ${tomcatInstallationDir} 755 tomcat tomcat   ../Tomcat/     ${tomcatInstallationDir}/webapps 755 tomcat tomcat   target/${deliverable}.war  ${deliverable}.war      palm-jre >= 1.6.0_27-fcs  ${tomcatInstallationDir}  ../PlatformEngine/rpm_scripts/pre_install.sh utf-8   ../PlatformEngine/rpm_scripts/post_install.sh utf-8   ../PlatformEngine/rpm_scripts/pre_uninstall.sh utf-8   ../PlatformEngine/rpm_scripts/post_uninstall.sh utf-8         

现在,在我的.m2目录中,我找到了groovy-all项目的pom / sha1和一个jar文件。 但对于groovy-eclipse-compiler ,我看到了pom / sha1, 但没有jar文件

难道我做错了什么? Codehaus迁移中的某些东西是否会以某种方式搞砸了? 或者(更糟)两者?

maven工件已经在中央很长一段时间了,没有任何迁移可能已被搞砸了。

由于我不是专家,我只能给你我认为的原因。 看看我看到的groovy-eclipse-compiler版本2.9.1-01的pom

   codehaus.org http://repository.codehaus.org   

我的假设是,这将导致maven查看该存储库,该存储库不再存在。 如果这是真的,那么我对解决方案的建议是手动安装工件(它们都在maven中心)或使用不同的工具(如gradle(虽然这可能超出了你的范围)来进行构建。

编辑:我被告知您可以更改settings.xml以使用如下模式修复存储库配置:

   codehaus.org http://nexus.codehaus.org/   

例如,使用http://mvnrepository.com/artifact可能会有效,但我没有对此进行测试。

您引用的工件:

 org.codehaus.groovy:groovy-eclipse-compiler:maven-plugin:2.9.1-01 

如果你的构建没有找到这个,而不仅仅是你的配置是错误的。 网络/代理问题等(请参阅您的settings.xml)您可以在Maven中心搜索此工件: http : //search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.codehaus.groovy %22%20于是%20A%3A%22groovy-蚀编译%22

除了添加补充存储库之外,这无济于事。 此外,在Maven pom中添加默认值,如下所示:

    src/main/resources     src/test/resources   

没有意义,因为这些是默认值。 我偶然发现的是你正在定义编码之类的东西:

  org.apache.maven.plugins maven-resources-plugin 2.6  UTF-8   

首先,定义这样的插件版本是好的(但是你应该使用uptodate版本 )但是你不应该在每个插件中定义编码。 为此目的,存在一个属性:

  ...  UTF-8  ...  

通过使用上面的内容,您不需要为每个插件提供编码,因为像maven-resources-plugin , maven-compiler-plugin等插件定义了一个默认值。

关于codehaus迁移的一个词。 这意味着只有他们为开发人员提供的服务才会关闭,而不是已经属于Maven central的内容。

我建议在您自己的基础架构中安装存储库管理器。