Back to snippet library
Xml Snippet #5

DEX660 - parent Pom

This is the parent POM, which captures common build and deployment configuration that can is shared across projects. This should be placed at the path parent-pom/pom.xml in your Studio workspace folder.

For more info on working parent POMs and BOMs, see https://help.salesforce.com/s/articleView?id=001116554&type=1.

Xml
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"
>
  <!-- Make sure to update the YOUR_BG_ID as well as the versions to match your environment -->
  <modelVersion>4.0.0</modelVersion>
  <groupId>YOUR_BG_ID</groupId>
  <artifactId>parent-pom</artifactId>
  <version>1.0.0</version>
  <packaging>pom</packaging>
  <name>parent-pom</name>
  <parent>
    <groupId>YOUR_BG_ID</groupId>
    <artifactId>bom</artifactId>
    <version>1.0.0</version>
    <relativePath>../bom/pom.xml</relativePath>
  </parent>
  <properties>
    <type>custom</type>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <app.deploy.server.name>anypoint-cloudhub-deploys</app.deploy.server.name>
    <api.layer.eapi>Experience</api.layer.eapi>
    <api.layer.papi>Process</api.layer.papi>
    <api.layer.sapi>System</api.layer.sapi>
    <api.layer.backend>Backend</api.layer.backend>
    <api.layer.none>None</api.layer.none>
  </properties>
  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>src/test/resources</directory>
        <filtering>true</filtering>
      </testResource>
    </testResources>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>${maven.resources.plugin.version}</version>
          <configuration>
            <nonFilteredFileExtensions>
              <nonFilteredFileExtension>p12</nonFilteredFileExtension>
              <nonFilteredFileExtension>crt</nonFilteredFileExtension>
              <nonFilteredFileExtension>pem</nonFilteredFileExtension>
            </nonFilteredFileExtensions>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>${maven.clean.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.mule.tools.maven</groupId>
          <artifactId>mule-maven-plugin</artifactId>
          <version>${mule.maven.plugin.version}</version>
          <extensions>true</extensions>
          <configuration>
            <cloudhub2Deployment>
              <businessGroup />
              <environment>${deployment.env}</environment>
              <muleVersion>${app.runtime.semver}</muleVersion>
              <releaseChannel>EDGE</releaseChannel>
              <javaVersion>17</javaVersion>
              <target>Cloudhub-US-East-2</target>
              <provider>MC</provider>
              <replicas>1</replicas>
              <vCores>0.1</vCores>
              <applicationName>${deployment.name}</applicationName>
              <server>${app.deploy.server.name}</server>
              <secureProperties>
                <anypoint.platform.client_secret>${anypoint.platform.client_secret}
                </anypoint.platform.client_secret>
                <encrypt.key>${encrypt.key}</encrypt.key>
              </secureProperties>
              <properties>
                <anypoint.platform.visualizer.displayName>
                  ${project.name}
                </anypoint.platform.visualizer.displayName>
                <anypoint.platform.visualizer.layer>
                  ${api.layer}
                </anypoint.platform.visualizer.layer>
                <anypoint.platform.client_id>${anypoint.platform.client_id}
                </anypoint.platform.client_id>
                <env>${deployment.env}</env>
              </properties>
              <deploymentSettings>
                <http>
                  <inbound>
                    <lastMileSecurity>true</lastMileSecurity>
                  </inbound>
                </http>
              </deploymentSettings>
            </cloudhub2Deployment>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

Diagram