如何在不制作jar文件的情况下继承核心项目?

时间:2014-11-10 06:52:58

标签: java maven dependency-management

我们需要一个使用maven进行项目依赖管理的解决方案。

我们有一个包含基类的核心项目。我们希望开发另一个依赖于我们核心项目的项目。例程解决方案是将核心项目安装为.jar,并将其作为子项目的pom.xml文件中的依赖项添加。由于一些管理方面的考虑,我们正在寻找一种将子项目直接依赖于核心项目的方法(如项目普通项目依赖项)。我们可以使用maven执行此操作吗?

--core
  --front-core
    --front-draft

目前,我们已经解决了这个问题: 我们的核心maven结构:

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>ir.group</groupId>
    <artifactId>framework.core</artifactId>
    <packaging>jar</packaging>
...
</project>

我们的前核心maven结构:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>ir.etick</groupId>
    <artifactId>framework.front</artifactId>
    <packaging>jar</packaging>

<dependencies>
        <dependency>
            <groupId>ir.group</groupId>
            <artifactId>framework.core</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
...
</dependencies>
...
</project>

在我们的前期草案中:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>ir.etick.front.draft</groupId>
    <artifactId>ir.etick.front.draft</artifactId>
    <packaging>war</packaging>
         <dependency>
            <groupId>ir.etick</groupId>
            <artifactId>framework.front</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

...

2 个答案:

答案 0 :(得分:0)

我不知道如何使用maven解决它,但你可以通过项目依赖来解决它。 见this

答案 1 :(得分:0)

@Madhi Shabani,

也许我误解了你的情况,但听起来你问是否可以将framework.core声明为ir.etick.front.draft的直接依赖,即使它也是{{1}的依赖关系}。

如果这是问题,那么答案是肯定的,你的依赖树可以如下所示:

<强> ir.etick.front.draft / pom.xml的

framework.front

希望有所帮助。

修改

我真的不明白你不想打包成罐子的理由。

但是,如果您必须将依赖项打包为类型 war ,而不是see this guide