1

我想在我正在 IntelliJ IDEA 中工作的 Java 项目中使用 Jetty 作为嵌入式库。但是,可以从 Maven 中央存储库中获得许多不同的 Jetty 包。可从此处直接下载的 JAR名为jetty-distribution-9.0.3.v20130506.tar.gz,因此我假设 Maven 中央存储库提供的最佳完整包是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 更新的任何东西。任何人都可以重现或解释这个问题吗?转移到新问题。

4

2 回答 2

2

检查依赖类型。

有所谓的pom类型的依赖项,它们充当其他依赖项的列表。为了能够获取它们,您必须在 pom.xml 中将它们标记为 pom 依赖项

如果您只需要服务器组件,请尝试搜索此字符串

'org.eclipse.jetty:jetty-server:9.0.3.v20130506'
于 2013-06-08T14:33:32.873 回答
0

Maven 依赖项有一个type,默认情况下是jar. jetty 分发包不是 jar,正如您在中央存储库中看到的那样,您可以下载 a.zip或 a .tar.gz,因此您必须将依赖项声明为:

<dependency>
  <groupId>org.eclipse.jetty</groupId>
  <artifactId>jetty-distribution</artifactId>
  <version>${jetty.version}</version>
  <type>zip</type>
</dependency>

如果您现在构建,它将下载 zip 并且构建可能会成功。但是,zip 与 jar 不同,因此根据您在该构建中实际执行的操作,您将不得不做更多的事情来实际使用该 zip。

您可能不想使用分发包,除非您还为您的项目构建独立分发 (.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>

查看模块列表以了解您可能还需要什么,例如jetty-ajpjetty-websocketjetty-jsp

于 2013-06-08T15:14:02.113 回答