3

我正在尝试启动一个 Maven 项目,我总是在 Jetty 中手动启动该项目。为此,我正在使用 maven-jetty-plugin。

执行 jetty:run 时似乎一切正常,除了 Jetty 没有找到 POM 中定义的依赖项。

如果我运行 jetty:war,则使用依赖项正确构建战争,这样就可以了。为什么 jetty:run 不包括我在 WEB-INF/lib (或其他任何地方)中的库?

4

4 回答 4

1

如果您需要 Jetty 的依赖项,该依赖项位于主 Maven 存储库以外的某个位置,请添加以下内容:

<pluginRepositories>
    <pluginRepository>
        <id>repo-id</id>
        <url>http://my_other_repo.edu</url>
    </pluginRepository>
</pluginRepositories>

我不相信 Jetty 会在你的 POM 中使用现有的存储库。

于 2012-07-25T16:22:16.020 回答
0

这实际上取决于您定义的依赖项。例如,如果您在 jetty.xml 文件中定义了 JNDI 资源,您将需要该jetty-plus依赖项。但是,您只需要此依赖项来执行插件。插件可以有<dependencies/>,这就是你需要定义它的地方。

如果您有一个插件无法找到的特定于 Jetty 的类的列表,那么查找依赖项的最佳方法是使用 www.jarvana.com 之类的站点。

于 2012-03-05T21:39:34.663 回答
0

“依赖项”是指其他项目吗?

如果是这样,您需要在 jetty:run 看到它们之前将它们安装 (mvn:install) 到本地存储库中。

jetty:war 可能正在打包它们并将它们放入 lib 文件夹中,而没有安装到本地存储库中。

于 2012-03-07T16:43:24.730 回答
0

对我来说,我的 repo 中有一个 .jar 文件没有被 Eclipse 拾取。我不知道如何在 Eclipse 中修复它,所以我的工作是......

  1. 使用以下命令将 .jar 文件的副本添加到不同 groupId 下的 repo(~/.m2 下的不同路径):

    mvn install:install-file -Dfile=dhcp4java-1.0.0.jar -DgroupId=a_abc.hack -DartifactId=dhcp4java -Dversion=1.0.0 -Dpackaging=jar

  2. 引用新的 groupId ,它只需要为 pom.xml 中的依赖项更新此条目:

    <groupId>a_abc.hack </groupId>

于 2013-11-13T20:08:41.133 回答