Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从核心项目继承而不生成jar文件?_Java_Maven_Dependency Management - Fatal编程技术网

Java 如何从核心项目继承而不生成jar文件?

Java 如何从核心项目继承而不生成jar文件?,java,maven,dependency-management,Java,Maven,Dependency Management,我们需要一个使用maven进行项目依赖关系管理的解决方案 我们有一个包含基类的核心项目。我们想开发另一个依赖于我们核心项目的项目。常规解决方案是将核心项目作为.jar安装,并将其作为依赖项添加到子项目的pom.xml文件中。由于一些管理方面的考虑,我们正在寻找一种直接将子项目依赖于核心项目的方法(就像一个普通项目依赖)。我们可以用maven来执行这个吗 --core --front-core --front-draft 目前,我们已经这样解决了这个问题: 我们的核心maven结构:

我们需要一个使用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>

4.0.0
红外组
framework.core
罐子
...
我们的前端核心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>

4.0.0
艾瑞克先生
前框架
罐子
红外组
framework.core
1.0-快照
...
...
在我们的初稿中:

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

...

4.0.0
伊雷克前气流
伊雷克前气流
战争
艾瑞克先生
前框架
1.0-快照
...

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

@Madhi Shabani

也许我误解了您的情况,但听起来您好像在问是否可以将
framework.core
声明为
ir.etick.front.draft
的直接依赖项,尽管它也是
framework.front
的依赖项

如果这是一个问题,那么答案是肯定的,您的依赖关系树完全可以如下所示:

ir.etick.front.draft/pom.xml

<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>
    <dependency>
        <groupId>ir.group</groupId>
        <artifactId>framework.core</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

4.0.0
伊雷克前气流

.

你能展示你的子项目pom.xml吗?我已经用maven结构更新了我的问题如果你不想制作一个jar,你需要继承什么??您可以创建一个pom项目,并将其作为pom类型的依赖项引用。然后将此“BOM表”导入到子项目中。查看并搜索“BOM”您能解释一下它是什么“条”吗?你的链接是参考链接,如果你给我一个快速的解决方案,它会更有帮助。无论如何,谢谢;)谢谢你的回复。但我需要maven结构。谢谢你的回复。你能给我解释一下我的父项目的maven类型吗?例如,我的意思是说framework.core和framework.front必须是什么类型?我们不想把它们当作罐子。它们可以是pom、war、bar等吗?这正是我们想要的。在Maven术语中,framework.core和framework.front不是父项目,它们是与ir.etic.front.draft一样的常规项目。它们是3个兄弟项目,它们之间存在依赖关系。回到您的问题,framework.core和framework.front可以是您想要的任何包装:pom、war、ear、jar等。包装方式影响您访问内容的方式。特别是,如果框架包含Java代码,那么不要使用pom打包。我想我明白了!让我试试并导出我的结果;)@MahdiShabani,请参见我上面的文章的编辑,以获得依赖于战争而不是jar的链接(坦白说,这仍然是一个非常奇怪的要求)。为了让您清楚地理解,我可以说,当我们有一些web项目(不是jar)并且我们使用maven时,我们希望有一个多模块项目,其中一些项目相互依赖,我们怎么能为所有这些都建立一个单一的构建呢。现在有了您给我的解决方案,我可以将war文件中生成的所有类附加到聚合的最终war文件中。