由于 "Negative seek offset",Cargo Maven 插件无法下载和解压 Jetty zip

Cargo Maven Plugin unable to download and unpack Jetty zip due to "Negative seek offset"

  1. 我在 运行 进行集成测试时遇到以下错误:

    Failed to execute goal org.codehaus.cargo:cargo-maven2- 
    plugin:1.1.3:start (start-container) on project <project-name>:
    Execution start-container of goal org.codehaus.cargo:cargo-maven2-
    plugin:1.1.3:start failed: Error while expanding 
    <project>/target/downloads/jetty-6.1.26.zip
    [ERROR] java.io.IOException: Negative seek offset
    

虽然,如果我只是执行 mvn jetty:run,它确实会启动服务器。 有人遇到过类似的问题吗,你是怎么解决的?

这是我的配置:

    <plugin>
            <!-- http://cargo.codehaus.org/Maven2+Plugin+Reference+Guide -->
            <groupId>org.codehaus.cargo</groupId>
            <artifactId>cargo-maven2-plugin</artifactId>
            <version>1.1.3</version>
            <executions>
                <execution>
                    <id>start-container</id>
                    <phase>pre-integration-test</phase>
                    <goals>
                        <goal>start</goal>
                    </goals>
                </execution>
                <execution>
                    <id>stop-container</id>
                    <phase>post-integration-test</phase>
                    <goals>
                        <goal>stop</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <wait>false</wait>
                <container>
                    <containerId>jetty6x</containerId>
                    <!-- The 'embedded' container does not seem to support 
                        setting JNDI values through a jetty-env.xml file, see http://jira.codehaus.org/browse/CARGO-861 
                        and http://jira.codehaus.org/browse/CARGO-862 for more information. For now, 
                        we'll use the 'installed' container which works fine, it is just slightly 
                        slower than the embedded version since it is a large distribution (25 mb) 
                        that must be downloaded. -->
                    <type>installed</type>
                    <zipUrlInstaller>
                        <url>http://dist.codehaus.org/jetty/jetty-6.1.26/jetty-6.1.26.zip</url>
                        <downloadDir>${project.build.directory}/downloads</downloadDir>
                        <extractDir>${project.build.directory}/extracts</extractDir>
                    </zipUrlInstaller>
                    <systemProperties>
                        <java.io.tmpdir>target/tmp</java.io.tmpdir>
                        <!-- These "jetty6.*" system properties are used 
                            to set values in the jetty-env.xml file. -->
                        <jetty6.context>Project-NAME</jetty6.context>
                        <jetty6.warFile>${project.build.directory}/project-war.war</jetty6.warFile>
                    </systemProperties>
                    <output>${project.build.directory}/cargo-container.log</output>
                    <log>${project.build.directory}/cargo.log</log>
                    <dependencies>
                        <dependency>
                            <location>${project.basedir}/src/test/keystores/sun/${keystoreType}</location>
                        </dependency>
                        <dependency>
                            <groupId>com.oracle</groupId>
                            <artifactId>ojdbc6</artifactId>
                        </dependency>
                    </dependencies>
                </container>
                <configuration>
                    <home>${project.build.directory}/jetty6x/container</home>
                    <!-- See http://cargo.codehaus.org/Configuration+properties 
                        for possible properties. -->
                    <properties>
                        <cargo.servlet.port>9090</cargo.servlet.port>
                        <cargo.logging>low</cargo.logging>
                        <!-- Enable to debug the server, see http://cargo.codehaus.org/Debugging 
                            for more information. -->
                       <!--  <cargo.jvmargs> -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888 
                            -Xnoagent -Djava.compiler=NONE </cargo.jvmargs> -->
                    </properties>
                    <configfiles>
                        <configfile>
                            <file>${project.basedir}/src/test/keystores/sun/${keystoreType}/jetty-env.xml</file>
                            <todir>contexts</todir>
                            <tofile>project-Name.xml</tofile>
                        </configfile>
                    </configfiles>
                    <deployables>
                        <deployable>
                            <groupId><project-NAME></groupId>
                            <artifactId>project-war</artifactId>
                            <type>war</type>
                            <properties>
                                <context>project-Name</context>
                            </properties>
                        </deployable>
                    </deployables>
                </configuration>
            </configuration>
        </plugin>
  1. 我知道 codehaus 正在下降,最终将不得不更新。对于将 war 和 运行 集成测试部署为客户端的轻量级服务器有什么建议吗?

根本原因:

Codehaus.org 是一个死网站。 2015年5月17日100%下线

The time has come to end the era of Codehaus.

All Codehaus services will be terminated progressively until May 17th 2015

With increasing diversity in opensource hosting platforms like Github and Bitbucket - who are meeting the needs of 1000s of projects - it makes sense to end the opensource hosting services of Codehaus.

Codehaus has operated at a loss for several years now (we're not powered by venture capital), and can not compete with the army of developers and integrated product offerings that are now commonplace.

The platform was to be terminated at the end of February 2015, however SonarQube has graciously offered to sponsor Codehaus for a few months to aid in the transition.

您对 dist.codehaus.org 的 URL 访问失败。

<url>http://dist.codehaus.org/jetty/jetty-6.1.26/jetty-6.1.26.zip</url>

其他重要说明:

  • cargo-maven2-plugin自1.1.3版本以来已经发布了25个版本,考虑升级。
  • Cargo 也已离开 codehaus,现在在 codehaus-cargo.github.io 找到它们。
  • 不要使用 Jetty 6,它在 2010 年的 EOL(生命周期结束)。
  • 曾经托管在 dist.codehaus.org 上的 Jetty 5 和 Jetty 6 二进制文件不会有替代下载位置。
  • 不要使用 Jetty 7 or Jetty 8 either, those are EOL as of 2014
  • Jetty 9 是目前(2015 年 5 月)唯一稳定且受支持的 Jetty 系列。