All Downloads are FREE. Search and download functionalities are using the official Maven repository.

archetype-resources.pom.xml Maven / Gradle / Ivy

<?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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>${groupId}</groupId>
    <artifactId>${artifactId}</artifactId>
    <version>${version}</version>
    <name>${artifactId} Share JAR Module</name>
    <description>Sample Share JAR Module (to be included in the share.war)</description>
    <packaging>jar</packaging>

    <properties>
        <!-- Alfresco Maven Plugin version to use -->
        <alfresco.sdk.version>@@alfresco.sdk.parent.version@@</alfresco.sdk.version>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <!-- Properties used in dependency declarations, you don't need to change these -->
        <alfresco.groupId>org.alfresco</alfresco.groupId>
        <alfresco.bomDependencyArtifactId>@@alfresco.bomDependency.artifactId@@</alfresco.bomDependencyArtifactId>
        <alfresco.platform.version>@@alfresco.platform.version@@</alfresco.platform.version>
        <alfresco.platform.docker.user>@@alfresco.platform.docker.user@@</alfresco.platform.docker.user>
        <alfresco.share.version>@@alfresco.share.version@@</alfresco.share.version>
        <alfresco.share.docker.version>@@alfresco.share.docker.version@@</alfresco.share.docker.version>

        <!-- Docker images -->
        <docker.acs.image>@@alfresco.platform.docker.image@@</docker.acs.image>
        <docker.share.image>@@alfresco.share.docker.image@@</docker.share.image>

        <keystore.settings>@@keystore.settings@@</keystore.settings>

        <!-- JRebel Hot reloading of classpath stuff and web resource stuff -->
        <jrebel.version>1.1.8</jrebel.version>

        <!-- Environment configuration properties -->
        <share.port>8180</share.port>
        <share.debug.port>9898</share.debug.port>
        <acs.host>${artifactId}-acs</acs.host>
        <acs.port>8080</acs.port>
        <postgres.port>5555</postgres.port>

    </properties>

    <!-- Libs used in Unit and Integration tests -->
    <!-- IMPORTANT - Test dependencies need to be here in the top parent POM as
                     the Alfresco Maven IT Mojo runs as part of the parent project ... -->
    <dependencies>
        <dependency>
            <groupId>${alfresco.groupId}</groupId>
            <artifactId>share</artifactId>
            <classifier>classes</classifier>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <!-- This will import the dependencyManagement for all artifacts in the selected Alfresco platform.
                 NOTE: You still need to define dependencies in your POM, but you can omit version as
                       it's enforced by this dependencyManagement.
                 NOTE: It defaults to the latest version this SDK pom has been tested with,
                       but alfresco version can/should be overridden in your project's pom
            -->
            <dependency>
                <groupId>${alfresco.groupId}</groupId>
                <artifactId>${alfresco.bomDependencyArtifactId}</artifactId>
                <version>${alfresco.platform.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- Redefine the following Share dependencies as they have different version numbers than platform.
                 They are defined in alfresco-platform-distribution... -->
            <dependency>
                <groupId>${alfresco.groupId}</groupId>
                <artifactId>share</artifactId>
                <version>${alfresco.share.version}</version>
                <type>war</type>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>${alfresco.groupId}</groupId>
                <artifactId>share</artifactId>
                <version>${alfresco.share.version}</version>
                <classifier>classes</classifier>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>${alfresco.groupId}</groupId>
                <artifactId>alfresco-web-framework-commons</artifactId>
                <version>${alfresco.share.version}</version>
                <classifier>classes</classifier>
                <scope>provided</scope>
            </dependency>

        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <!--
                                Build an AMP if 3rd party libs are needed by the extensions
                                JARs are the default artifact produced in your modules, if you want to build an amp for each module
                                you have to enable this plugin and inspect the src/main/assembly.xml file if you want to customize
                                the layout of your AMP. The end result is that Maven will produce both a JAR file and an AMP with your
                                module.
                            -->
            <!--
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <id>build-amp-file</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <configuration>
                            <appendAssemblyId>false</appendAssemblyId>
                            <descriptor>src/main/assembly/amp.xml</descriptor>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.alfresco.maven.plugin</groupId>
                        <artifactId>alfresco-maven-plugin</artifactId>
                        <version>${alfresco.sdk.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
            -->

            <!-- Filter the test resource files in the AIO parent project, and do property substitutions.
                 We need this config so this is done before the Alfresco Maven Plugin 'run' is executed. -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <nonFilteredFileExtensions> <!-- jpg, jpeg, gif, bmp and png are added automatically -->
                        <nonFilteredFileExtension>ftl</nonFilteredFileExtension>
                        <nonFilteredFileExtension>acp</nonFilteredFileExtension>
                        <nonFilteredFileExtension>svg</nonFilteredFileExtension>
                        <nonFilteredFileExtension>pdf</nonFilteredFileExtension>
                        <nonFilteredFileExtension>doc</nonFilteredFileExtension>
                        <nonFilteredFileExtension>docx</nonFilteredFileExtension>
                        <nonFilteredFileExtension>xls</nonFilteredFileExtension>
                        <nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
                        <nonFilteredFileExtension>ppt</nonFilteredFileExtension>
                        <nonFilteredFileExtension>pptx</nonFilteredFileExtension>
                        <nonFilteredFileExtension>bin</nonFilteredFileExtension>
                        <nonFilteredFileExtension>lic</nonFilteredFileExtension>
                        <nonFilteredFileExtension>swf</nonFilteredFileExtension>
                        <nonFilteredFileExtension>zip</nonFilteredFileExtension>
                        <nonFilteredFileExtension>msg</nonFilteredFileExtension>
                        <nonFilteredFileExtension>jar</nonFilteredFileExtension>
                        <nonFilteredFileExtension>ttf</nonFilteredFileExtension>
                        <nonFilteredFileExtension>eot</nonFilteredFileExtension>
                        <nonFilteredFileExtension>woff</nonFilteredFileExtension>
                        <nonFilteredFileExtension>woff2</nonFilteredFileExtension>
                        <nonFilteredFileExtension>css</nonFilteredFileExtension>
                        <nonFilteredFileExtension>ico</nonFilteredFileExtension>
                        <nonFilteredFileExtension>psd</nonFilteredFileExtension>
                        <nonFilteredFileExtension>js</nonFilteredFileExtension>
                    </nonFilteredFileExtensions>
                </configuration>
                <executions>
                    <execution>
                        <id>copy-and-filter-docker-compose-resources</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.outputDirectory}/docker</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>docker</directory>
                                    <filtering>true</filtering>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>copy-and-filter-docker-resources</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>src/main/docker</directory>
                                    <filtering>true</filtering>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>copy-share-extension</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/extensions</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>target</directory>
                                    <includes>
                                        <include>${project.build.finalName}.jar</include>
                                    </includes>
                                    <filtering>false</filtering>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!-- Compress JavaScript files and store as *.min.js -->
            <plugin>
                <groupId>com.github.blutorange</groupId>
                <artifactId>closure-compiler-maven-plugin</artifactId>
                <version>2.28.0</version>
                <executions>
                    <!-- Compress the JS files under the assembly folder -->
                    <execution>
                        <id>compress-assembly</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>minify</goal>
                        </goals>
                        <configuration>
                            <baseSourceDir>${project.basedir}/src/main/assembly</baseSourceDir>
                            <baseTargetDir>${project.basedir}/src/main/assembly</baseTargetDir>
                            <sourceDir>web</sourceDir>
                            <targetDir>web</targetDir>
                            <skipMerge>true</skipMerge>
                            <includes>
                                <include>**/*.js</include>
                            </includes>
                            <excludes>
                                <exclude>**/webscripts/**</exclude>
                                <exclude>**/site-webscripts/**</exclude>
                                <exclude>**/META-INF/**</exclude>
                                <exclude>**/*.lib.js</exclude>
                                <exclude>**/*.css</exclude>
                                <exclude>**/*.min.js</exclude>
                                <exclude>**/*.min.css</exclude>
                            </excludes>
                            <force>true</force>
                        </configuration>
                    </execution>
                    <!-- Compress the JS files under the resources folder -->
                    <execution>
                        <id>compress-resources</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>minify</goal>
                        </goals>
                        <configuration>
                            <baseSourceDir>${project.basedir}/src/main</baseSourceDir>
                            <baseTargetDir>${project.basedir}/src/main</baseTargetDir>
                            <sourceDir>resources</sourceDir>
                            <targetDir>resources</targetDir>
                            <skipMerge>true</skipMerge>
                            <includes>
                                <include>**/*.js</include>
                            </includes>
                            <excludes>
                                <exclude>**/webscripts/**</exclude>
                                <exclude>**/site-webscripts/**</exclude>
                                <exclude>**/*.lib.js</exclude>
                                <exclude>**/*.css</exclude>
                                <exclude>**/*.min.js</exclude>
                                <exclude>**/*.min.css</exclude>
                            </excludes>
                            <force>true</force>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>3.1.1</version>
                <executions>
                    <!-- Collect extensions (JARs or AMPs) declared in this module to be deployed to docker -->
                    <execution>
                        <id>collect-extensions</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/extensions</outputDirectory>
                            <includeScope>runtime</includeScope>
                            <!-- IMPORTANT: if using amp dependencies only, add <includeTypes>amp</includeTypes> -->
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!-- Hot reloading with JRebel -->
            <plugin>
                <groupId>org.zeroturnaround</groupId>
                <artifactId>jrebel-maven-plugin</artifactId>
                <version>${jrebel.version}</version>
                <executions>
                    <execution>
                        <id>generate-rebel-xml</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!-- For more information about how to configure JRebel plugin see:
                         http://manuals.zeroturnaround.com/jrebel/standalone/maven.html#maven-rebel-xml -->
                    <classpath>
                        <fallback>all</fallback>
                        <resources>
                            <resource>
                                <directory>${project.build.outputDirectory}</directory>
                                <directory>${project.build.testOutputDirectory}</directory>
                            </resource>
                        </resources>
                    </classpath>

                    <!--
                      alwaysGenerate - default is false
                      If 'false' - rebel.xml is generated if timestamps of pom.xml and the current rebel.xml file are not equal.
                      If 'true' - rebel.xml will always be generated
                    -->
                    <alwaysGenerate>true</alwaysGenerate>
                </configuration>
            </plugin>
        </plugins>

        <resources>
            <!-- Filter the resource files in this project and do property substitutions -->
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <testResources>
            <!-- Filter the test resource files in this project and do property substitutions -->
            <testResource>
                <directory>src/test/resources</directory>
                <filtering>true</filtering>
            </testResource>
        </testResources>
    </build>

    <profiles>
        <profile>
            <id>java8</id>
            <activation>
                <jdk>[1.8,11.0)</jdk>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.8.0</version>
                        <configuration>
                            <source>1.8</source>
                            <target>1.8</target>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>java11</id>
            <activation>
                <jdk>[11.0,17)</jdk>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.8.0</version>
                        <configuration>
                            <release>11</release>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>java17</id>
            <activation>
                <jdk>[17,)</jdk>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.8.0</version>
                        <configuration>
                            <release>17</release>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <!--
        Alfresco Maven Repositories
        -->
    <repositories>
        <repository>
            <id>alfresco-public</id>
            <url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
        </repository>
        <repository>
            <id>alfresco-public-snapshots</id>
            <url>https://artifacts.alfresco.com/nexus/content/groups/public-snapshots</url>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>daily</updatePolicy>
            </snapshots>
        </repository>
        <!-- Alfresco Enterprise Edition Artifacts, put username/pwd for server in settings.xml -->
        <repository>
            <id>alfresco-private-repository</id>
            <url>https://artifacts.alfresco.com/nexus/content/groups/private</url>
        </repository>
        <repository>
            <id>alfresco-internal</id>
            <url>https://artifacts.alfresco.com/nexus/content/groups/internal</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>alfresco-plugin-public</id>
            <url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
        </pluginRepository>
        <pluginRepository>
            <id>alfresco-plugin-public-snapshots</id>
            <url>https://artifacts.alfresco.com/nexus/content/groups/public-snapshots</url>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>daily</updatePolicy>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>
</project>




© 2015 - 2024 Weber Informatics LLC | Privacy Policy