我开始学习maven,现在我正在尝试开始一些简单的realworld项目。也许它在这里看起来很简单,但如果我想同时打包父项目和子项目,我该怎么办,我真的很困惑。用Maven继承和构建
(PS:我使用的BTW的IntelliJ IDEA)
这里是我的配置
项目A
- 认为这取决于番石榴和GSON
B计划
- 它将取决于项目A
项目C
- 它将取决于项目B 当我设置包装项目A的属性到罐子
,它提供了一个错误基本上是这样说的:“如果包装元素在父类中,你必须将包装元素设置为pom”。但我知道,如果我将包装元素设置为pom,则不会创建包装。
因此,我决定创建另一个项目作为multimodule来管理包装问题,但不知道如何!我怎样才能同时为他们每个人生成jar文件?
编辑 - 这里是我DID
MODULE POM
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.deneme.module</groupId>
<artifactId>ModuleGroup</artifactId>
<packaging>pom</packaging>
<version>1.0.1</version>
<modules>
<module>A</module>
<module>B</module>
</modules>
</project>
项目
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mg.A</groupId>
<artifactId>A</artifactId>
<version>1.0.2</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.3</version>
</dependency>
</dependencies>
</project>
项目B
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<parent>
<artifactId>A</artifactId>
<groupId>com.mg.A</groupId>
<version>1.0.2</version>
<relativePath>../A/pom.xml</relativePath>
</parent>
<groupId>com.mg.B</groupId>
<artifactId>B</artifactId>
<version>1.0.1</version>
</project>
将与您项目进行建设什么类型的文物,B a nd C?这三个项目如何构建 - B和C作为A的子模块还是所有顶级项目?也许发布你的POM和目录结构的相关部分。 –
你的项目结构是什么样的?是B还是C的父母?如果是的话,这可能不是你想要的。你期望的结果是什么(即应该是什么结果 - 一个EAR文件?)。 如果所有三个“模块”都在同一个“项目”中,您可以制作一个父 - 妈妈,将这三个模块作为孩子。 – MrD
可以说所有这些应该是一个jar文件的结果。 A是B的父母,他们都是图书馆项目。 C是一个正常的项目,它将使用库B(和间接方式A)。我不想一遍又一遍地描述依赖关系。例如,我必须定义项目A中的所有依赖项,并且C应自动使用它们中的所有依赖项。 –