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的内容。
我建议在您自己的基础架构中安装存储库管理器。