2013-01-01 106 views
0

我有一个网络项目中依赖于项目B,大厦项目包含Maven的其他项目

项目B依赖于JARç

问题:

当我打包Web项目A,有一个罐子b(预计),但他们没有参考jar c

所以,当我运行我的web项目A和访问函数项目B我得到了类NotFoundException因为jar C不是包括

任何帮助,我怎么能包括在父项目的JAR C时不写它自己在项目中的pom.xml

网络项目pom.xml

<project ....> 
    .......... 
    <dependencies> 
     <!--Local Projects --> 
     <dependency> 
      <groupId>${project.groupId}</groupId> 
      <artifactId>project B</artifactId> 
      <version>1.0.0</version> 
     </dependency> 
    </dependencies> 

</project> 

B项目pom.xml

<project ....> 
<dependencies> 
    <dependency> 
     <groupId>jar_C</groupId> 
     <artifactId>jar_C</artifactId> 
     <version>1.0.0</version> 

    </dependency> 

</dependencies> 

+0

,你能不能给我们更多的信息。显示在poms中定义的实际依赖关系。 – asgoth

+0

我编辑了代码来显示我的pom.xml – shereifhawary

+0

这是一个多模块项目吗?换句话说,项目C在A之前已经在B和B之前建成了吗? – asgoth

回答

0

作为您的配置,Maven只是响应这对于编译来说是可靠的,也就是说一个jar不会对它自身产生任何依赖关系。如果你需要的依赖包都在一起,你应该使用Assembly插件,请参阅:here

0

有一个在Maven Dependency Mechanism

进口(仅在Maven中可用的2.0.9或更高版本的读取)

此作用域仅用于<dependencyManagement>部分中的pom类型的依赖关系。它表示指定的POM应该替换为该POM的<dependencyManagement>部分中的依存关系。由于它们被替换,因此具有导入范围的依赖关系实际上并不参与限制依赖关系的传递性。

所以基本上,试试这个

网络项目pom.xml

<project ....> 
    .......... 
    <dependencies> 
     <!--Local Projects --> 
     <dependency> 
      <groupId>${project.groupId}</groupId> 
      <artifactId>project B</artifactId> 
      <version>1.0.0</version> 
      <scope>import</scope> 
     </dependency> 
    </dependencies> 

</project>