我想在 HtmlUnit 中使用 "Spark" web 框架(Java 中的 Sinatra 克隆版)。
这个想法是,我的 Web 服务将能够下载网站并解析它们(和执行 JavaScript 等),然后收集一些数据、做一些统计等。HtmlUnit 不仅仅用于测试,而且实际上在主项目中是必需的。
无论如何,Spark 运行在 Jetty 上,Spark 和 HtmlUnit 似乎都使用相同的 websocket 客户端库(
该项目可以编译,但无法启动 Web 服务器。
有没有办法解决这些冲突呢?
以下是我的依赖项:
我也找到了enforce插件,它会列出所有的冲突。以下是输出结果:
这个想法是,我的 Web 服务将能够下载网站并解析它们(和执行 JavaScript 等),然后收集一些数据、做一些统计等。HtmlUnit 不仅仅用于测试,而且实际上在主项目中是必需的。
无论如何,Spark 运行在 Jetty 上,Spark 和 HtmlUnit 似乎都使用相同的 websocket 客户端库(
org.eclipse.jetty.websocket:websocket-client:9.3.2.v20150730
),但版本不同。还有一些其他库似乎也会出问题。该项目可以编译,但无法启动 Web 服务器。
有没有办法解决这些冲突呢?
以下是我的依赖项:
<dependencies>
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-core</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-template-freemarker</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>net.sourceforge.htmlunit</groupId>
<artifactId>htmlunit</artifactId>
<version>2.19</version>
</dependency>
</dependencies>
我也找到了enforce插件,它会列出所有的冲突。以下是输出结果:
Failed while enforcing releasability the error(s) are [
Dependency convergence error for org.slf4j:slf4j-api:1.7.12 paths to dependency are:
+-com.example:helloworld:1.0-SNAPSHOT
+-com.sparkjava:spark-core:2.3
+-org.slf4j:slf4j-api:1.7.12
and
+-com.example:helloworld:1.0-SNAPSHOT
+-com.sparkjava:spark-core:2.3
+-org.slf4j:slf4j-simple:1.7.12
+-org.slf4j:slf4j-api:1.7.12
and
+-com.example:helloworld:1.0-SNAPSHOT
+-com.sparkjava:spark-template-freemarker:2.0.0
+-org.slf4j:slf4j-api:1.7.2
,
Dependency convergence error for commons-codec:commons-codec:1.9 paths to dependency are:
+-com.example:helloworld:1.0-SNAPSHOT
+-net.sourceforge.htmlunit:htmlunit:2.19
+-org.apache.httpcomponents:httpclient:4.5.1
+-commons-codec:commons-codec:1.9
and
+-com.example:helloworld:1.0-SNAPSHOT
+-net.sourceforge.htmlunit:htmlunit:2.19
+-commons-codec:commons-codec:1.10
,
Dependency convergence error for xml-apis:xml-apis:1.3.04 paths to dependency are:
+-com.example:helloworld:1.0-SNAPSHOT
+-net.sourceforge.htmlunit:htmlunit:2.19
+-xalan:xalan:2.7.2
+-xalan:serializer:2.7.2
+-xml-apis:xml-apis:1.3.04
and
+-com.example:helloworld:1.0-SNAPSHOT
+-net.sourceforge.htmlunit:htmlunit:2.19
+-xerces:xercesImpl:2.11.0
+-xml-apis:xml-apis:1.4.01
,
Dependency convergence error for org.eclipse.jetty.websocket:websocket-client:9.3.2.v20150730 paths to dependency are:
+-com.example:helloworld:1.0-SNAPSHOT
+-com.sparkjava:spark-core:2.3
+-org.eclipse.jetty.websocket:websocket-server:9.3.2.v20150730
+-org.eclipse.jetty.websocket:websocket-client:9.3.2.v20150730
and
+-com.example:helloworld:1.0-SNAPSHOT
+-net.sourceforge.htmlunit:htmlunit:2.19
+-org.eclipse.jetty.websocket:websocket-client:9.2.13.v20150730
,
Dependency convergence error for com.sparkjava:spark-core:2.3 paths to dependency are:
+-com.example:helloworld:1.0-SNAPSHOT
+-com.sparkjava:spark-core:2.3
and
+-com.example:helloworld:1.0-SNAPSHOT
+-com.sparkjava:spark-template-freemarker:2.0.0
+-com.sparkjava:spark-core:2.0.0
]