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

时间:2015-05-18 23:21:44

标签: java maven groovy repository

所以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的精简版:

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.hp</groupId>
    <artifactId>device-state-service</artifactId>
    <packaging>war</packaging>
    <version>1.0.0</version>
    <name>device-state-service</name>

    <properties>
        <spring.version>3.2.0.RELEASE</spring.version>
        <groovy-all.version>2.3.7</groovy-all.version>
        <spock-core.version>0.7-groovy-2.0</spock-core.version>
        <lombok.version>1.12.2</lombok.version>
...
    </properties>

    <dependencies>
...

        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>${groovy-all.version}</version>
        </dependency>
...
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
            <scope>provided</scope>
        </dependency>
...
        <dependency>
            <groupId>org.spockframework</groupId>
            <artifactId>spock-core</artifactId>
            <version>${spock-core.version}</version>
            <scope>test</scope>
        </dependency>
...
        <dependency>
            <groupId>org.codehaus.groovy.modules.http-builder</groupId>
            <artifactId>http-builder</artifactId>
            <version>0.7</version>
            <scope>test</scope>
        </dependency>
...
    </dependencies>

    <build>
        <finalName>dss</finalName>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>src/test/resources</directory>
            </testResource>
        </testResources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <compilerId>groovy-eclipse-compiler</compilerId>
                    <verbose>false</verbose>
                    <compilerArguments>
                        <javaAgentClass>lombok.core.Agent</javaAgentClass>
                    </compilerArguments>
                    <fork>true</fork>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>UTF-8</encoding>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-eclipse-compiler</artifactId>
                        <version>2.9.1-01</version>
                    </dependency>
                    <dependency>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-eclipse-batch</artifactId>
                        <version>2.3.7-01</version>
                    </dependency>
                    <dependency>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>${lombok.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
...
        </plugins>
    </build>    
        <profiles>
        <profile>
            <id>dss</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <property>
                    <name>deliverable</name>
                    <value>dss</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>rpm-maven-plugin</artifactId>
                        <version>2.1-alpha-1</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>rpm</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            ...
                            <name>${deliverable}</name>
                            <projversion>${pom.version}</projversion>
                            <release>${BUILD_NUMBER}</release>
                            <description>Search: RPM package</description>
                            <mappings>
                                <mapping>
                                    <directory>${tomcatInstallationDir}</directory>
                                    <filemode>755</filemode>
                                    <username>tomcat</username>
                                    <groupname>tomcat</groupname>
                                    <sources>
                                        <source>
                                            <location>../Tomcat/</location>
                                        </source>
                                    </sources>
                                </mapping>
                                <mapping>
                                    <directory>${tomcatInstallationDir}/webapps</directory>
                                    <filemode>755</filemode>
                                    <username>tomcat</username>
                                    <groupname>tomcat</groupname>
                                    <sources>
                                        <source>
                                            <location>target/${deliverable}.war
                                            </location>
                                            <destination>${deliverable}.war</destination>
                                        </source>
                                    </sources>
                                </mapping>
                            </mappings>
                            <requires>
                                <require>palm-jre &gt;= 1.6.0_27-fcs</require>
                            </requires>
                            <prefix>${tomcatInstallationDir}</prefix>
                            <preinstallScriptlet>
                                <scriptFile>../PlatformEngine/rpm_scripts/pre_install.sh</scriptFile>
                                <fileEncoding>utf-8</fileEncoding>
                            </preinstallScriptlet>
                            <postinstallScriptlet>
                                <scriptFile>../PlatformEngine/rpm_scripts/post_install.sh</scriptFile>
                                <fileEncoding>utf-8</fileEncoding>
                            </postinstallScriptlet>
                            <preremoveScriptlet>
                                <scriptFile>../PlatformEngine/rpm_scripts/pre_uninstall.sh</scriptFile>
                                <fileEncoding>utf-8</fileEncoding>
                            </preremoveScriptlet>
                            <postremoveScriptlet>
                                <scriptFile>../PlatformEngine/rpm_scripts/post_uninstall.sh</scriptFile>
                                <fileEncoding>utf-8</fileEncoding>
                            </postremoveScriptlet>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>

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

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

2 个答案:

答案 0 :(得分:1)

maven文物已经存在很长时间了,没有任何移植可能会被搞砸了。

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

<repositories>
    <repository>
        <id>codehaus.org</id>
        <url>http://repository.codehaus.org</url>
    </repository>
</repositories>

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

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

<repositories>
    <repository>
        <id>codehaus.org</id>
        <url>http://nexus.codehaus.org/<some suburl></url>
    </repository>
</repositories>

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

答案 1 :(得分:0)

您引用的工件:

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%20AND%20a%3A%22groovy-eclipse-compiler%22

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

  <resources>
    <resource>
      <directory>src/main/resources</directory>
    </resource>
  </resources>
  <testResources>
    <testResource>
      <directory>src/test/resources</directory>
    </testResource>
  </testResources>

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

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-resources-plugin</artifactId>
  <version>2.6</version>
  <configuration>
    <encoding>UTF-8</encoding>
  </configuration>
</plugin>

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

<project>
  ...
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  ...
</project>

通过使用上述内容,您无需为每个插件提供编码,因此maven-resources-pluginmaven-compiler-plugin等插件会定义默认值。

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

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