添加了对pom.xml的依赖,但一直说“包不存在”

时间:2016-06-07 14:56:23

标签: java maven jetty

我正在修补补丁:https://gist.github.com/ensonic/4deddeff42e80fc93685112689dbc91f 对于这个项目:https://github.com/OpenRoberta/robertalab/

我已将新依赖项添加到pom.xml,然后运行mvn clean install。这意外地失败了:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project OpenRobertaServer: Compilation failure: Compilation failure:
[ERROR] /home/ensonic/projects/lego/robertalab/OpenRobertaServer/src/main/java/de/fhg/iais/roberta/main/ServerStarter.java:[9,45] package org.eclipse.jetty.server.handler.gzip does not exist
[ERROR] /home/ensonic/projects/lego/robertalab/OpenRobertaServer/src/main/java/de/fhg/iais/roberta/main/ServerStarter.java:[9,45] package org.eclipse.jetty.server.handler.gzip does not exist
[ERROR] /home/ensonic/projects/lego/robertalab/OpenRobertaServer/src/main/java/de/fhg/iais/roberta/main/ServerStarter.java:[115,9] cannot find symbol
[ERROR] symbol:   class GzipHandler
[ERROR] location: class de.fhg.iais.roberta.main.ServerStarter
[ERROR] /home/ensonic/projects/lego/robertalab/OpenRobertaServer/src/main/java/de/fhg/iais/roberta/main/ServerStarter.java:[115,39] cannot find symbol
[ERROR] symbol:   class GzipHandler
[ERROR] location: class de.fhg.iais.roberta.main.ServerStarter
[ERROR] /home/ensonic/projects/lego/robertalab/OpenRobertaServer/src/main/java/de/fhg/iais/roberta/main/ServerStarter.java:[118,32] cannot find symbol
[ERROR] symbol:   variable myHandler
[ERROR] location: class de.fhg.iais.roberta.main.ServerStarter

我查看了mvn -emvn -X,但没有任何有用的信息。

当它失败时,我找不到可以满足项目树中任何位置的依赖关系的jetty-servlets-9.2.5.v20141112.jar。如果我删除对java代码和构建的修改(现在已经通过),那么所需的jar就在那里:

$ find .. -name "jetty-servlets-9.2.5.v20141112.jar"
../OpenRobertaServer/target/resources/jetty-servlets-9.2.5.v20141112.jar

pom.xml正在使用maven-dependency-plugin,但据我所知,这是针对测试而且编译应该没有它,对吗?

2 个答案:

答案 0 :(得分:1)

你有类似的东西:

<!-- http://mvnrepository.com/artifact/org.eclipse.jetty/jetty-server -->
<dependency>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-server</artifactId>
    <version>9.3.9.v20160517</version>
</dependency>

你能展示整个pom依赖吗?

关于该类的使用,来自官方文档:

  

Jetty GzipHandler是一个可以应用的压缩处理程序   任何动态资源(servlet)。它通常修复了许多错误   可用的压缩过滤器:它适用于异步servlet;它   处理设置内容长度的所有方法。我们用Jetty进行了测试   延续和暂停请求。一些用户代理可能是   从压缩中排除以避免常见的浏览器错误(是的,这   IE!)。

     

GzipHandler被添加到整个服务器   gzip.mod模块中的etc / jetty-gzip.xml文件。它也可能被添加   到上下文xml文件中的各个上下文。

链接:http://download.eclipse.org/jetty/9.3.8.v20160314/apidocs/org/eclipse/jetty/server/handler/gzip/package-summary.html#package.description

答案 1 :(得分:0)

一段时间后自己解决了。我使用http://archive.eclipse.org/jetty/查看与我的版本匹配的完全文档,并在检查时,我了解到jetty项目似乎没有稳定的ABI概念。几乎每天都会重命名方法和包,通常会留下指向api的弃用注释,而api本身也会重新命名。 很伤心。

总结maven设置是正确的,但我打算使用的api命名不同。