ToB企服应用市场:ToB评测及商务社交产业平台

标题: maven 中<packaging>pom</packaging>设置使用 [打印本页]

作者: 瑞星    时间: 2024-11-29 19:38
标题: maven 中<packaging>pom</packaging>设置使用
在 Maven 项目的 pom.xml 文件中, 元素用于指定项目的打包范例。默认情况下,如果 元素没有被显式界说,Maven 会假设其值为 jar。但是,当您设置 pom 时,这意味着该项目是一个 POM(Project Object Model)项目。
pom 的含义
1、POM 项目:

当一个项目的 设置为 pom 时,表示这是一个 POM 项目。这种范例的项目主要用于聚合其他模块或管理依靠关系。
POM 项目不会生成任何实际的输出文件(如 JAR、WAR 等),而是作为其他子模块的父 POM 或者用于集中管理依靠和插件设置。
2、多模块项目:

在多模块项目中,通常有一个父 POM 项目,它使用 pom 来声明自己是父项目。父 POM 项目可以包含多个子模块,而且可以集中管理这些子模块的共同设置,例如版本号、依靠项、插件等。
子模块可以在它们各自的 pom.xml 中继承父 POM 的设置,从而淘汰重复设置。
3、依靠管理:

POM 项目可以用来集中管理依靠版本和其他设置,这样所有的子模块都可以引用父 POM 中界说的依靠版本,而不需要在每个子模块中单独声明。
示例

父 POM 项目
  1. <project xmlns="http://maven.apache.org/POM/4.0.0"
  2.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4.     <modelVersion>4.0.0</modelVersion>
  5.     <groupId>com.example</groupId>
  6.     <artifactId>parent-project</artifactId>
  7.     <version>1.0.0</version>
  8.     <packaging>pom</packaging>
  9.     <modules>
  10.         <module>child-module1</module>
  11.         <module>child-module2</module>
  12.     </modules>
  13.     <properties>
  14.         <java.version>1.8</java.version>
  15.         <spring.version>5.3.10</spring.version>
  16.     </properties>
  17.     <dependencyManagement>
  18.         <dependencies>
  19.             <dependency>
  20.                 <groupId>org.springframework</groupId>
  21.                 <artifactId>spring-core</artifactId>
  22.                 <version>${spring.version}</version>
  23.             </dependency>
  24.             <!-- 其他依赖项 -->
  25.         </dependencies>
  26.     </dependencyManagement>
  27.     <build>
  28.         <pluginManagement>
  29.             <plugins>
  30.                 <plugin>
  31.                     <groupId>org.apache.maven.plugins</groupId>
  32.                     <artifactId>maven-compiler-plugin</artifactId>
  33.                     <version>3.8.1</version>
  34.                     <configuration>
  35.                         <source>${java.version}</source>
  36.                         <target>${java.version}</target>
  37.                     </configuration>
  38.                 </plugin>
  39.                 <!-- 其他插件 -->
  40.             </plugins>
  41.         </pluginManagement>
  42.     </build>
  43. </project>
复制代码
子模块
  1. <project xmlns="http://maven.apache.org/POM/4.0.0"
  2.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4.     <modelVersion>4.0.0</modelVersion>
  5.     <parent>
  6.         <groupId>com.example</groupId>
  7.         <artifactId>parent-project</artifactId>
  8.         <version>1.0.0</version>
  9.     </parent>
  10.     <artifactId>child-module1</artifactId>
  11.     <dependencies>
  12.         <dependency>
  13.             <groupId>org.springframework</groupId>
  14.             <artifactId>spring-core</artifactId>
  15.         </dependency>
  16.         <!-- 其他依赖项 -->
  17.     </dependencies>
  18. </project>
复制代码
在这个例子中,parent-project 是一个 POM 项目,它界说了版本号、依靠管理和插件设置。child-module1 是一个子模块,它继承了父 POM 的设置,而且可以直接使用父 POM 中界说的依靠版本。
通过这种方式,您可以更好地组织和管理大型或多模块项目,淘汰重复设置,并保持项目的划一性。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4