pom.xml结构说明

什么是POM
项目对象模型或POM是Maven中的基本工作单元。这是一个XML文件,其中包含有关项目的信息以及Maven用于构建项目的配置详细信息。它包含大多数项目的默认值。比如构建目录,即target; 源目录,即src/main/java;测试源目录,即src/test/java;等等。当执行任务或目标时,Maven在当前目录中查找POM。它读取POM,获取所需的配置信息,然后执行目标。
可以在POM中指定的一些配置是项目依赖项,可以执行的插件或目标,构建配置文件等等。也可以指定其他信息,例如项目版本,描述,开发人员,邮件列表等。
Super POM
Super POM是Maven的默认POM。除非明确设置,否则所有POM都会扩展Super POM,这意味着Super POM中指定的配置将由您为项目创建的POM继承。您可以在Maven Core参考文档中看到适用于Maven 3.6.3Super POM

sdfsd<br>fsdfsdfsdfsdfsdfssfsdfsdfsd

<project>

  <modelVersion>4.0.0</modelVersion>

  <repositories>

    <repository>

      <id>central</id>

      <name>Central Repository</name>

      <url>https://repo.maven.apache.org/maven2</url>

      <layout>default</layout>

      <snapshots>

        <enabled>false</enabled>

      </snapshots>

    </repository>

  </repositories>

  <pluginRepositories>

    <pluginRepository>

      <id>central</id>

      <name>Central Repository</name>

      <url>https://repo.maven.apache.org/maven2</url>

      <layout>default</layout>

      <snapshots>

        <enabled>false</enabled>

      </snapshots>

      <releases>

        <updatePolicy>never</updatePolicy>

      </releases>

    </pluginRepository>

  </pluginRepositories>

  <build>

    <directory>${project.basedir}/target</directory>

    <outputDirectory>${project.build.directory}/classes</outputDirectory>

    <finalName>${project.artifactId}-${project.version}</finalName>

    <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>

    <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>

    <scriptSourceDirectory>${project.basedir}/src/main/scripts</scriptSourceDirectory>

    <testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>

    <resources>

      <resource>

        <directory>${project.basedir}/src/main/resources</directory>

      </resource>

    </resources>

    <testResources>

      <testResource>

        <directory>${project.basedir}/src/test/resources</directory>

      </testResource>

    </testResources>

    <pluginManagement>

      <!-- NOTE: These plugins will be removed from future versions of the super POM -->

      <!-- They are kept for the moment as they are very unlikely to conflict with lifecycle mappings (MNG-4453) -->

      <plugins>

        <plugin>

          <artifactId>maven-antrun-plugin</artifactId>

          <version>1.3</version>

        </plugin>

        <plugin>

          <artifactId>maven-assembly-plugin</artifactId>

          <version>2.2-beta-5</version>

        </plugin>

        <plugin>

          <artifactId>maven-dependency-plugin</artifactId>

          <version>2.8</version>

        </plugin>

        <plugin>

          <artifactId>maven-release-plugin</artifactId>

          <version>2.5.3</version>

        </plugin>

      </plugins>

    </pluginManagement>

  </build>

  <reporting>

    <outputDirectory>${project.build.directory}/site</outputDirectory>

  </reporting>

  <profiles>

    <!-- NOTE: The release profile will be removed from future versions of the super POM -->

    <profile>

      <id>release-profile</id>

      <activation>

        <property>

          <name>performRelease</name>

          <value>true</value>

        </property>

      </activation>

      <build>

        <plugins>

          <plugin>

            <inherited>true</inherited>

            <artifactId>maven-source-plugin</artifactId>

            <executions>

              <execution>

                <id>attach-sources</id>

                <goals>

                  <goal>jar-no-fork</goal>

                </goals>

              </execution>

            </executions>

          </plugin>

          <plugin>

            <inherited>true</inherited>

            <artifactId>maven-javadoc-plugin</artifactId>

            <executions>

              <execution>

                <id>attach-javadocs</id>

                <goals>

                  <goal>jar</goal>

                </goals>

              </execution>

            </executions>

          </plugin>

          <plugin>

            <inherited>true</inherited>

            <artifactId>maven-deploy-plugin</artifactId>

            <configuration>

              <updateReleaseInfo>true</updateReleaseInfo>

            </configuration>

          </plugin>

        </plugins>

      </build>

    </profile>

  </profiles>

</project>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容