我正在修补补丁: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 -e
或mvn -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,但据我所知,这是针对测试而且编译应该没有它,对吗?
答案 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文件中的各个上下文。
答案 1 :(得分:0)
一段时间后自己解决了。我使用http://archive.eclipse.org/jetty/查看与我的版本匹配的完全文档,并在检查时,我了解到jetty项目似乎没有稳定的ABI概念。几乎每天都会重命名方法和包,通常会留下指向api的弃用注释,而api本身也会重新命名。 很伤心。
总结maven设置是正确的,但我打算使用的api命名不同。