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

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

Go to download

Sample multi-module project for All-in-One development on the Alfresco plaftorm. Includes modules for Platform/Repository JAR and Share JAR

The newest version!
<?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>AIO - SDK 4.9</name>
    <description>All-In-One (AIO) project for SDK 4.9</description>
    <packaging>pom</packaging>

    <prerequisites>
        <maven>3.3.0</maven>
    </prerequisites>

    <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>
        <acs.debug.port>8888</acs.debug.port>
        <postgres.port>5555</postgres.port>
        <!-- This parameter is only required for those cases in which ACS is not exposed in http://localhost:8080/alfresco (i.e. Windows Docker) -->
        <test.acs.endpoint.path>@@test.acs.endpoint.path@@</test.acs.endpoint.path>

    </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>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>4.2.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- The main Alfresco Repo dependency for compiling Java code in src/main/java -->
        <dependency>
            <groupId>${alfresco.groupId}</groupId>
            <artifactId>alfresco-remote-api</artifactId>
            <scope>provided</scope>
        </dependency>

        <!-- Bring in Alfresco RAD so we get access to AlfrescoTestRunner classes -->
        <dependency>
            <groupId>org.alfresco.maven</groupId>
            <artifactId>alfresco-rad</artifactId>
            <version>${alfresco.sdk.version}</version>
            <scope>test</scope>
        </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>
        <pluginManagement>
            <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 resources in any sub-project with this config -->
                <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>
                </plugin>

                <plugin>
                    <groupId>org.zeroturnaround</groupId>
                    <artifactId>jrebel-maven-plugin</artifactId>
                    <version>${jrebel.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>3.0.0-M1</version>
                    <executions>
                        <execution>
                            <id>integration-test</id>
                            <phase>integration-test</phase>
                            <goals>
                                <goal>integration-test</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>verify-test</id>
                            <phase>verify</phase>
                            <goals>
                                <goal>verify</goal>
                            </goals>
                        </execution>
                    </executions>
                    <dependencies>
                        <dependency>
                            <groupId>org.apache.maven.surefire</groupId>
                            <artifactId>surefire-junit47</artifactId>
                            <version>3.0.0-M1</version>
                        </dependency>
                    </dependencies>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>3.1.1</version>
                </plugin>
            </plugins>
        </pluginManagement>

        <!-- Make sure resources in sub-projects are filtered -->
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>

        <plugins>
            <!-- 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>
                <inherited>false</inherited>
                <!-- Run only for the AIO parent Project -->
                <executions>
                    <execution>
                        <id>copy-and-filter-docker-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>
                </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>

            <!-- Hot reloading with JRebel -->
            <plugin>
                <groupId>org.zeroturnaround</groupId>
                <artifactId>jrebel-maven-plugin</artifactId>
                <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>
    </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