我正在尝试启动一个maven项目,我总是在Jetty中在Tomcat中手动启动。为此,我使用的是maven-jetty-plugin。
执行jetty时:run看起来一切顺利,但Jetty没有找到POM中定义的依赖项。
如果我运行jetty:war,使用依赖项正确构建战争,这样才有效。为什么是jetty:在WEB-INF / lib(或其他任何地方)运行不包括我的库?
答案 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中修复它,所以我的工作是......
使用此命令将.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
引用新的groupId,它只需要为pom.xml中的依赖项更新此条目:
&lt; groupId&gt; a_abc.hack&lt; / groupId&gt;