Maven 4.0.0 模式-pom.xml配置详解

Maven 4.0.0 模式-pom.xml配置详解

​ 此 pom.xml 文件涵盖了 Maven 4.0.0 模式支持的所有主要标签,包括项目元数据、依赖管理、构建配置、发布管理等。每个标签都配有详细注释,说明其作用、常见用法和可能的值。

​ 此文件旨在展示标签的完整性,部分配置(如仓库 URL、SCM 地址)是示例值,无法直接运行。实际使用时需根据项目需求调整。

​ 按照 Maven 的逻辑结构组织,从项目坐标到高级配置,层次分明,便于学习。(协同ai生成)



<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.0modelVersion>

    
    
    <groupId>com.examplegroupId>
    
    <artifactId>my-projectartifactId>
    
    <version>1.0.0-SNAPSHOTversion>
    
    <packaging>jarpackaging>

    
    
    <name>My Example Projectname>
    
    <description>A comprehensive Maven project for learning purposes.description>
    
    <url>https://www.example.comurl>
    
    <inceptionYear>2025inceptionYear>

    
    <organization>
        
        <name>Example Inc.name>
        
        <url>https://www.example.orgurl>
    organization>

    
    <licenses>
        <license>
            
            <name>Apache License, Version 2.0name>
            
            <url>https://www.apache.org/licenses/LICENSE-2.0url>
            
            <distribution>repodistribution>
            
            <comments>A business-friendly OSS licensecomments>
        license>
    licenses>

    
    <developers>
        <developer>
            
            <id>johndoeid>
            
            <name>John Doename>
            
            <email>[email protected]email>
            
            <url>https://johndoe.example.comurl>
            
            <organization>Example Inc.organization>
            
            <organizationUrl>https://www.example.orgorganizationUrl>
            
            <roles>
                <role>Developerrole>
                <role>Architectrole>
            roles>
            
            <timezone>UTC+8timezone>
        developer>
    developers>

    
    <contributors>
        <contributor>
            <name>Jane Smithname>
            <email>[email protected]email>
            <organization>Communityorganization>
            <roles>
                <role>Testerrole>
            roles>
        contributor>
    contributors>

    
    <mailingLists>
        <mailingList>
            
            <name>Dev Listname>
            
            <subscribe>[email protected]subscribe>
            
            <unsubscribe>[email protected]unsubscribe>
            
            <post>[email protected]post>
            
            <archive>https://mail.example.com/archivearchive>
        mailingList>
    mailingLists>

    
    <prerequisites>
        
        
        <maven>3.6.0maven>
    prerequisites>

    
    <modules>
        
        <module>module-amodule>
        <module>module-bmodule>
    modules>

    
    <properties>
        
        <maven.compiler.source>11maven.compiler.source>
        <maven.compiler.target>11maven.compiler.target>
        
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        
        <spring.version>5.3.20spring.version>
    properties>

    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframeworkgroupId>
                <artifactId>spring-coreartifactId>
                <version>${spring.version}version>
            dependency>
        dependencies>
    dependencyManagement>

    
    <dependencies>
        
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.13.2version>
            
            <scope>testscope>
            
            <optional>trueoptional>
        dependency>
        
        <dependency>
            <groupId>org.apache.commonsgroupId>
            <artifactId>commons-lang3artifactId>
            <version>3.12.0version>
            
            <exclusions>
                <exclusion>
                    <groupId>some.unwantedgroupId>
                    <artifactId>unwanted-libartifactId>
                exclusion>
            exclusions>
        dependency>
    dependencies>

    
    <repositories>
        <repository>
            
            <id>aliyunid>
            
            <name>Aliyun Maven Repositoryname>
            
            <url>https://maven.aliyun.com/repository/publicurl>
            
            <layout>defaultlayout>
            
            <releases>
                <enabled>trueenabled>
                <updatePolicy>dailyupdatePolicy>
                <checksumPolicy>warnchecksumPolicy>
            releases>
            
            <snapshots>
                <enabled>falseenabled>
            snapshots>
        repository>
    repositories>

    
    <pluginRepositories>
        <pluginRepository>
            <id>aliyun-pluginid>
            <name>Aliyun Plugin Repositoryname>
            <url>https://maven.aliyun.com/repository/publicurl>
            <releases>
                <enabled>trueenabled>
            releases>
            <snapshots>
                <enabled>falseenabled>
            snapshots>
        pluginRepository>
    pluginRepositories>

    
    <build>
        
        <defaultGoal>installdefaultGoal>
        
        <directory>${project.basedir}/targetdirectory>
        
        <finalName>${project.artifactId}-${project.version}finalName>
        
        
        <sourceDirectory>${project.basedir}/src/main/javasourceDirectory>
        
        <testSourceDirectory>${project.basedir}/src/test/javatestSourceDirectory>
        
        
        <resources>
            <resource>
                
                <directory>${project.basedir}/src/main/resourcesdirectory>
                
                <filtering>truefiltering>
                
                <includes>
                    <include>**/*.propertiesinclude>
                includes>
                
                <excludes>
                    <exclude>**/*.bakexclude>
                excludes>
            resource>
        resources>
        
        
        <testResources>
            <testResource>
                <directory>${project.basedir}/src/test/resourcesdirectory>
                <filtering>falsefiltering>
            testResource>
        testResources>
        
        
        <plugins>
            
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-compiler-pluginartifactId>
                <version>3.10.1version>
                
                <configuration>
                    <source>${maven.compiler.source}source>
                    <target>${maven.compiler.target}target>
                    <encoding>${project.build.sourceEncoding}encoding>
                configuration>
                
                <executions>
                    <execution>
                        <id>default-compileid>
                        <phase>compilephase>
                        <goals>
                            <goal>compilegoal>
                        goals>
                    execution>
                executions>
            plugin>
        plugins>
        
        
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.pluginsgroupId>
                    <artifactId>maven-surefire-pluginartifactId>
                    <version>3.0.0-M7version>
                    <configuration>
                        <skipTests>falseskipTests>
                    configuration>
                plugin>
            plugins>
        pluginManagement>
    build>

    
    <reporting>
        
        <outputDirectory>${project.basedir}/target/siteoutputDirectory>
        
        <plugins>
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-project-info-reports-pluginartifactId>
                <version>3.4.1version>
                
                <reportSets>
                    <reportSet>
                        <id>defaultid>
                        <reports>
                            <report>dependenciesreport>
                            <report>indexreport>
                        reports>
                    reportSet>
                reportSets>
            plugin>
        plugins>
    reporting>

    
    <profiles>
        <profile>
            
            <id>devid>
            
            <activation>
                
                <property>
                    <name>envname>
                    <value>devvalue>
                property>
                
                <jdk>11jdk>
                
                <os>
                    <name>Windows 10name>
                    <family>Windowsfamily>
                os>
                
                <file>
                    <exists>${project.basedir}/src/main/resources/dev.propertiesexists>
                file>
            activation>
            
            <properties>
                <env.type>developmentenv.type>
            properties>
            
            <dependencies>
                <dependency>
                    <groupId>org.slf4jgroupId>
                    <artifactId>slf4j-apiartifactId>
                    <version>1.7.36version>
                dependency>
            dependencies>
        profile>
    profiles>

    
    <distributionManagement>
        
        <repository>
            <id>nexus-releasesid>
            <name>Nexus Release Repositoryname>
            <url>https://nexus.example.com/repository/releasesurl>
        repository>
        
        <snapshotRepository>
            <id>nexus-snapshotsid>
            <name>Nexus Snapshot Repositoryname>
            <url>https://nexus.example.com/repository/snapshotsurl>
        snapshotRepository>
        
        <downloadUrl>https://nexus.example.com/repository/releasesdownloadUrl>
        
        <site>
            <id>project-siteid>
            <name>Project Documentationname>
            <url>https://www.example.com/docsurl>
        site>
    distributionManagement>

    
    <issueManagement>
        
        <system>JIRAsystem>
        
        <url>https://jira.example.comurl>
    issueManagement>

    
    <ciManagement>
        
        <system>Jenkinssystem>
        
        <url>https://jenkins.example.comurl>
        
        <notifiers>
            <notifier>
                <type>mailtype>
                <sendOnError>truesendOnError>
                <configuration>
                    <address>[email protected]address>
                configuration>
            notifier>
        notifiers>
    ciManagement>

    
    <scm>
        
        <connection>scm:git:https://github.com/example/my-project.gitconnection>
        
        <developerConnection>scm:git:[email protected]:example/my-project.gitdeveloperConnection>
        
        <url>https://github.com/example/my-projecturl>
        
        <tag>HEADtag>
    scm>

    
    <parent>
        <groupId>com.examplegroupId>
        <artifactId>parent-projectartifactId>
        <version>1.0.0version>
        
        <relativePath>../parent/pom.xmlrelativePath>
    parent>

project>

你可能感兴趣的:(maven专栏,maven,xml,java)