一个新建项目的完整 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>nxcloud.sample</groupId><artifactId>sample-parent</artifactId><version>1.0.0-SNAPSHOT</version><modules><module>sample-entity</module><module>sample-domain</module><module>sample-provider</module></modules><packaging>pom</packaging><name>${project.artifactId}</name><repositories><!-- 按照项目实际情况配置 --><repository><id>nxcloud-public</id><name>Public Repositories</name><url>http://.../repository/maven-public/</url></repository><repository><id>central</id><name>Maven Central</name><url>https://maven.aliyun.com/repository/public/</url></repository></repositories><pluginRepositories><pluginRepository><id>central</id><name>Maven Central</name><url>https://maven.aliyun.com/repository/public/</url></pluginRepository></pluginRepositories><distributionManagement><repository><id>nxcloud-releases</id><name>NXCloud Releases</name><url>http://.../repository/maven-releases/</url></repository><snapshotRepository><id>nxcloud-snapshots</id><name>NXCloud Snapshots</name><url>http://.../repository/maven-snapshots/</url></snapshotRepository></distributionManagement><profiles><profile><id>local</id><properties><gm.jar.profile>local</gm.jar.profile><gm.jar.version>1.0.0-SNAPSHOT</gm.jar.version></properties><activation><property><name>gm.build.type</name><value>local</value></property><activeByDefault>true</activeByDefault></activation></profile><profile><id>dev</id><properties><gm.jar.profile>dev</gm.jar.profile><gm.jar.version>1.0.0-SNAPSHOT</gm.jar.version></properties><activation><property><name>gm.build.type</name><value>dev</value></property></activation></profile><profile><id>qa</id><properties><gm.jar.profile>qa</gm.jar.profile><gm.jar.version>5.0.0-SNAPSHOT</gm.jar.version></properties><activation><property><name>gm.build.type</name><value>qa</value></property></activation></profile><profile><id>prod</id><properties><gm.jar.profile>prod</gm.jar.profile><gm.jar.version>9.0.0-SNAPSHOT</gm.jar.version></properties><activation><property><name>gm.build.type</name><value>prod</value></property></activation></profile></profiles><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!-- 插件版本 --><plugin.maven.jar.version>3.2.0</plugin.maven.jar.version><plugin.maven.compiler.version>3.8.1</plugin.maven.compiler.version><plugin.maven.source.version>3.2.1</plugin.maven.source.version><plugin.maven.javadoc.version>3.2.0</plugin.maven.javadoc.version><plugin.maven.deploy.version>3.0.0-M1</plugin.maven.deploy.version><plugin.maven.war.version>3.3.1</plugin.maven.war.version><plugin.maven.surefire.version>3.0.0-M5</plugin.maven.surefire.version><plugin.maven.failsafe.version>3.0.0-M5</plugin.maven.failsafe.version><plugin.maven.assembly.version>3.3.0</plugin.maven.assembly.version><plugin.maven.enforcer.version>3.0.0-M3</plugin.maven.enforcer.version><plugin.maven.clean.version>3.1.0</plugin.maven.clean.version><plugin.maven.dependency.version>3.1.2</plugin.maven.dependency.version><plugin.codehaus.build.helper.version>3.2.0</plugin.codehaus.build.helper.version><plugin.mybatis.generator.version>1.4.0</plugin.mybatis.generator.version><plugin.spring.boot.version>2.4.2</plugin.spring.boot.version><plugin.fabric8.docker.version>0.34.1</plugin.fabric8.docker.version></properties><dependencyManagement><dependencies><dependency><groupId>nxcloud.foundation</groupId><artifactId>nxcloud-dependencies</artifactId><version>${gm.jar.version}</version><type>pom</type><scope>import</scope></dependency><!-- current project 方便子模块使用 --><dependency><groupId>${project.groupId}</groupId><artifactId>sample-entity</artifactId><version>${project.version}</version></dependency><dependency><groupId>${project.groupId}</groupId><artifactId>sample-domain</artifactId><version>${project.version}</version></dependency><dependency><groupId>${project.groupId}</groupId><artifactId>sample-provider</artifactId><version>${project.version}</version></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-engine</artifactId></dependency><dependency><groupId>org.junit.platform</groupId><artifactId>junit-platform-commons</artifactId></dependency></dependencies><build><pluginManagement><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>${plugin.maven.jar.version}</version></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>${plugin.maven.compiler.version}</version></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>${plugin.maven.source.version}</version></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId><version>${plugin.maven.javadoc.version}</version></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-deploy-plugin</artifactId><version>${plugin.maven.deploy.version}</version></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>${plugin.maven.war.version}</version></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>${plugin.maven.surefire.version}</version></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-failsafe-plugin</artifactId><version>${plugin.maven.failsafe.version}</version></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>${plugin.maven.assembly.version}</version></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-enforcer-plugin</artifactId><version>${plugin.maven.enforcer.version}</version></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-clean-plugin</artifactId><version>${plugin.maven.clean.version}</version></plugin><plugin><groupId>org.codehaus.mojo</groupId><artifactId>build-helper-maven-plugin</artifactId><version>${plugin.codehaus.build.helper.version}</version></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><version>${plugin.maven.dependency.version}</version></plugin><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>${plugin.mybatis.generator.version}</version></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${plugin.spring.boot.version}</version><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin><plugin><groupId>io.fabric8</groupId><artifactId>docker-maven-plugin</artifactId><version>${plugin.fabric8.docker.version}</version></plugin></plugins></pluginManagement><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-clean-plugin</artifactId><executions><execution><id>auto-clean</id><phase>initialize</phase><goals><goal>clean</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><archive><addMavenDescriptor>true</addMavenDescriptor><index>true</index><manifest><addDefaultSpecificationEntries>true</addDefaultSpecificationEntries><addDefaultImplementationEntries>true</addDefaultImplementationEntries></manifest></archive></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId></plugin></plugins><finalName>${project.artifactId}-${gm.jar.version}</finalName></build></project>
