我想在我正在IntelliJ IDEA中工作的Java项目中使用Jetty作为嵌入式库。但是,Maven Central Repository提供了许多不同的Jetty包。可从here直接下载的JAR名为jetty-distribution-9.0.3.v20130506.tar.gz
,因此我认为Maven Central Repo提供的最佳完整软件包为org.eclipse.jetty:jetty-distribution:9.0.3.v20130506
。但是当试图使用该坐标来检索库时,IntelliJ会返回此错误:
没有为org.eclipse.jetty下载文件:jetty-distribution:9.0.3.v20130506
为什么找不到那个包裹?如果它不可用,我应该下载哪些软件包?
编辑: 我现在意识到我应该使用的坐标是移到新问题。org.eclipse.jetty.aggregate:jetty-all:9.0.3.v20130506
。我可以在search.maven.org
找到它,但IntelliJ找不到比版本7更新的东西。任何人都可以复制或解释这个问题吗?
答案 0 :(得分:2)
检查依赖关系类型。
有所谓的 pom 类型的依赖项,它们充当其他依赖项的列表。为了能够获取它们,您必须在pom.xml中将它们标记为pom依赖项
如果您只需要服务器组件,请尝试搜索此字符串
'org.eclipse.jetty:jetty-server:9.0.3.v20130506'
答案 1 :(得分:0)
Maven依赖项具有type
,默认情况下为jar
。 jetty分发包不是jar,而you can see in the central repository,您可以下载.zip
或.tar.gz
,因此您必须将依赖声明为:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-distribution</artifactId>
<version>${jetty.version}</version>
<type>zip</type>
</dependency>
如果您现在构建,它将下载zip并且构建可能会成功。但是,拉链与jar不同,所以根据你在该版本中实际做的事情,你将不得不做更多的事情来实际使用该拉链。
您可能不想使用分发包,除非您还为项目构建独立分发(.zip),在这种情况下,您应该使用可以解压缩的maven-assembly-plugin码头分配并重新压缩整个项目。
你应该做的是决定你将需要什么,并建立一个自定义码头。这是起点,足以部署一个简单的基于servlet的应用程序:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-xml</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-deploy</artifactId>
<version>${jetty.version}</version>
</dependency>
你可能也需要这个,因为这是你开始Jetty的方法:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-start</artifactId>
<version>${jetty.version}</version>
</dependency>
查看the list of modules,了解您可能需要的其他内容,例如jetty-ajp
,jetty-websocket
或jetty-jsp
。