我刚刚开始使用NetBeans中的Maven。我试图弄清楚为什么我在构建项目(Java Web应用程序)时收到以下错误消息:
POM for unknown.binary:hibernate-jpamodelgen-4.3.1.Final:jar:SNAPSHOT是 缺少,没有可用的依赖信息
在下面的屏幕打印中,您可以看到错误消息,但您也可以看到此依赖关系实际上存在于pom.xml中,并且相关的.jar文件实际上存在于Dependencies文件夹中(所有相关部分在屏幕上都标有一条细红线,并且您可以点击图片将其放大):
编辑:在屏幕打印中,我在Dependencies文件夹中将错误的.jar文件标记为红色,它应该是我错误标记的文件下面的那个。
所以我想知道我在这里失踪了什么......
编辑:在屏幕打印中,我在Dependencies文件夹中将错误的.jar文件标记为红色,它应该是我错误标记的文件下面的那个。
答案 0 :(得分:2)
那种依赖看起来不对
你在项目中编译那个jar吗?
将其更改为:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>5.2.6.Final</version>
<scope>provided</scope>
</dependency>
或者您要使用的任何版本(即容器中运行的版本,例如tomcat)
答案 1 :(得分:0)
要运行,您需要所有jar文件。许多依赖项也需要关联的jar文件。考虑目标&#34;依赖:树&#34;。它显示了项目的所有依赖项,包括您已声明为依赖项的依赖项。 (我稍后会回到这里)
当你包含一个依赖项时,maven需要知道这个依赖项是否具有依赖关系,所以它也可以引入这些jar。 Maven走出来并拉入罐子,将它们存储在$ M2_HOME目录中。它还包括一个相关的pom。您可以在maven的存储库https://mvnrepository.com/上找到它。 该页面还将显示如何在您的pom中声明您的依赖项。 非常好的网站。
转到您的主目录并查找&#34; .m2&#34; \ repository。然后使用您的jar名称遍历并执行dir命令。它会显示罐子和相关的pom。该pom是它的(jar文件)依赖项所必需的。
当你执行依赖项:树目标时,它将搜索所有poms,包括$ M2_HOME目录中的那些poms,并显示一个显示所有依赖项的树。 你错过了pom
我刚去了maven的网站并输入了你的工具名称。这是它所说的使用的pom依赖。
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-jpamodelgen -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>5.2.6.Final</version>
</dependency>