如何将缺少的maven库添加到Jetty

时间:2012-03-05 20:56:42

标签: java xml maven jetty maven-jetty-plugin

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

执行jetty时:run看起来一切顺利,但Jetty没有找到POM中定义的依赖项。

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

4 个答案:

答案 0 :(得分:1)

如果您需要Jetty的依赖项,它位于主Maven仓库以外的其他位置,请添加以下内容:

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

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

答案 1 :(得分:0)

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

如果你有一个插件找不到的特定于Jetty的列表,那么查找依赖关系的最佳方法是使用像www.jarvana.com这样的网站。

答案 2 :(得分:0)

依赖'依赖',你的意思是其他项目吗?

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

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

答案 3 :(得分:0)

对我来说,我在我的仓库中有一个.jar文件没有被Eclipse收集。我没弄清楚如何在Eclipse中修复它,所以我的工作是......

  1. 使用此命令将.jar文件的副本添加到另一个groupId(〜/ .m2下的不同路径)下的repo中:

    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中的依赖项更新此条目:

    &lt; groupId&gt; a_abc.hack&lt; / groupId&gt;