与Maven相关的Java构建错误:缺少pom.xml

时间:2017-02-09 23:39:39

标签: java maven netbeans dependencies pom.xml

我刚刚开始使用NetBeans中的Maven。我试图弄清楚为什么我在构建项目(Java Web应用程序)时收到以下错误消息:

  

POM for   unknown.binary:hibernate-jpamodelgen-4.3.1.Final:jar:SNAPSHOT是   缺少,没有可用的依赖信息

在下面的屏幕打印中,您可以看到错误消息,但您也可以看到此依赖关系实际上存在于pom.xml中,并且相关的.jar文件实际上存在于Dependencies文件夹中(所有相关部分在屏幕上都标有一条细红线,并且您可以点击图片将其放大):

编辑:在屏幕打印中,我在Dependencies文件夹中将错误的.jar文件标记为红色,它应该是我错误标记的文件下面的那个。

enter image description here

所以我想知道我在这里失踪了什么......

编辑:在屏幕打印中,我在Dependencies文件夹中将错误的.jar文件标记为红色,它应该是我错误标记的文件下面的那个。

2 个答案:

答案 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>