使用包含其他项目的maven构建项目

时间:2013-01-01 11:49:50

标签: maven maven-2 maven-plugin

我有一个依赖项目B的网络项目A,

项目B依赖于JAR C

问题:

当我打包网络项目A时,有一个b的jar(预期),但它们没有引用jar c

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

任何帮助如何在父项目A中包含jar C而不在项目A pom.xml

中自己编写

web-project 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>

2 个答案:

答案 0 :(得分:0)

作为你的配置,Maven只负责编译,也就是说jar不会自带任何依赖。如果您需要将所有依赖项一起包装起来,则应使用Assembly插件,请参阅:here

答案 1 :(得分:0)

阅读Maven Dependency Mechanism

导入 (仅适用于Maven 2.0.9或更高版本)

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

所以基本上,试试这个

web-project 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>