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