在 Maven 中使用包装类型 pom 时,真正需要或推荐使用哪些标签?

What tags are really required or recommended when using packaging type pom in Maven?

一旦你将 packaging 设置为 pom,你是否需要 groupID、artifactId 和 version 标签,如果需要,它们的作用是什么?有没有你应该使用的标签(毕竟 groupID 显然是为 java 而设计的,所以如果有其他语言或工件类型特定的标签应该被使用,我不会感到惊讶)。样品:

简单的父 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>org.company</groupId>
    <artifactId>project_name</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <modules>
        <module>hosts</module>
    </modules>

</project>

简单的子 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>org.company</groupId>
    <artifactId>hosts</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
    
</project>

然后sub children就是很多类型的各种项目,java,C++,angular,python,更多的poms。

你需要所有这些标签。

POM 与 JAR、WAR 等一起部署,具有各自的 Maven 坐标(GroupId、ArtifactId、Version)。如果有人使用例如,它们将得到解决与你的 parent.

的依赖关系