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

rempl-maven-plugin-1.1.1.pom.xml Maven / Gradle / Ivy

Go to download

Reverse Engineering Meta Programming Library (REMPL) that enables manipulations with source code meta constructs, like classes, methods, files, packages, etc. in runtime.

There is a newer version: 1.4
Show newest version
<?xml version="1.0"?>
<!--
 *
 * Copyright (c) 2011, REMPL.com
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1) Redistributions of source code must retain the above copyright
 * notice, this list of conditions and the following disclaimer.
 * 2) Redistributions in binary form must reproduce the above
 * copyright notice, this list of conditions and the following
 * disclaimer in the documentation and/or other materials provided
 * with the distribution.
 * 3) Neither the name of the REMPL.com nor the names of its
 * contributors may be used to endorse or promote products derived
 * from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
 * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * @version $Id: pom.xml 1560 2011-07-04 18:24:18Z guard $
 *
 -->
<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>
    <parent>
        <groupId>com.rempl</groupId>
        <artifactId>rempl-plugins</artifactId>
        <version>1.1.1</version> <!-- REMPL-VERSION -->
    </parent>
    <groupId>com.rempl.plugins</groupId>
    <artifactId>rempl-maven-plugin</artifactId>
    <packaging>maven-plugin</packaging>
    <name>rempl-maven-plugin</name>

    <prerequisites>
        <!-- this element is mandatory for maven plugin -->
        <maven>3.0</maven>
    </prerequisites>

    <properties>
        <maven.version>3.0.3</maven.version>
        <!--
        * @todo #15 This is not the latest version at the moment. 1.11 is the
        *           latest, but we can't use it. When 1.11 is used Maven 3.0.3
        *           changes its JAR files on-fly to 1.9, which is not compatible
        *           with our code. I don't know how to solve it, and will discuss
        *           with Aether team in their mailing list. In the mean time
        *           1.9 works fine.
        -->
        <aether.version>1.9</aether.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.rempl</groupId>
            <artifactId>rempl-tk</artifactId>
            <!-- see details in rempl/pom.xml/dependencyManagement -->
        </dependency>
        <dependency>
            <groupId>com.rempl</groupId>
            <artifactId>rempl-api</artifactId>
            <!-- see details in rempl/pom.xml/dependencyManagement -->
        </dependency>
        <dependency>
            <groupId>com.rempl</groupId>
            <artifactId>rempl-aether</artifactId>
            <!-- see details in rempl/pom.xml/dependencyManagement -->
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.rempl</groupId>
            <artifactId>rempl-core</artifactId>
            <scope>runtime</scope>
            <!-- see details in rempl/pom.xml/dependencyManagement -->
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-plugin-api</artifactId>
            <version>${maven.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-project</artifactId>
            <version>2.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.reporting</groupId>
            <artifactId>maven-reporting-api</artifactId>
            <version>3.0</version> <!-- 24 March 2011 -->
        </dependency>
        <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-sink-api</artifactId>
            <version>1.0</version> <!-- 24 March 2011 -->
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-artifact</artifactId>
            <version>${maven.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-compat</artifactId>
            <version>${maven.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-core</artifactId>
            <version>${maven.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-model</artifactId>
            <version>${maven.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-settings</artifactId>
            <version>${maven.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-settings-builder</artifactId>
            <version>${maven.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.sonatype.sisu</groupId>
            <artifactId>sisu-inject-plexus</artifactId>
            <version>2.1.1</version> <!-- 18 Mar 2011 -->
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>1.6.10</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.codehaus.plexus</groupId>
            <artifactId>plexus-container-default</artifactId>
            <version>1.0-alpha-44</version> <!-- 18 Mar 2011 -->
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.sonatype.aether</groupId>
            <artifactId>aether-api</artifactId>
            <version>${aether.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.sonatype.aether</groupId>
            <artifactId>aether-util</artifactId>
            <!--
            @todo #15 I don't know why, but this version has to be 1.11,
                      while other Aether artifacts have to be in 1.9. Only
                      this particular combination of versions work fine
                      with all unit and integration tests.
            -->
            <version>1.11</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.sonatype.aether</groupId>
            <artifactId>aether-impl</artifactId>
            <version>${aether.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-aether-provider</artifactId>
            <version>3.0.2</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.plugin-testing</groupId>
            <artifactId>maven-plugin-testing-harness</artifactId>
            <version>2.0-alpha-1</version> <!-- 17 Mar 2011 -->
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <!-- see details in rempl/pom.xml/dependencyManagement -->
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
            <!-- see details in rempl/pom.xml/dependencyManagement -->
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <!-- see details in rempl/pom.xml/dependencyManagement -->
        </dependency>
        <dependency>
            <!-- see details in rempl/pom.xml/dependencyManagement -->
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
        </dependency>
        <dependency>
            <!-- see details in rempl/pom.xml/dependencyManagement -->
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
        </dependency>
    </dependencies>

    <profiles>
        <!-- @todo #40: When tests migrate from assertTrue
             assertFalse to assertThat, we can remove whole
             aspectj profile from here (correct one will
             be inheritet from the parent -->
        <profile>
            <id>aspectj</id>
            <activation>
                <property><name>aj</name></property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>aspectj-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>weave-classes</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>weave-test-classes</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>test-compile</goal>
                                </goals>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>org.aspectj</groupId>
                                <artifactId>aspectjrt</artifactId>
                                <version>1.6.10</version>
                                <scope>runtime</scope>
                            </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>plugin-specifics</id>
            <activation>
                <property><name>ci</name></property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <!--
                        Validate the quality of documentation
                        @link http://maven.apache.org/plugins/maven-docck-plugin
                        -->
                        <artifactId>maven-docck-plugin</artifactId>
                        <version>1.0</version> <!-- 30 Dec 2010 -->
                        <configuration>
                            <offline>false</offline>
                        </configuration>
                        <executions>
                            <execution>
                                <id>check-documentation</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-plugin-plugin</artifactId>
                        <version>2.6</version> <!-- 1 Jan 2011 -->
                        <executions>
                            <execution>
                                <!--
                                Generate com.rempl.maven.HelpMojo class to enable
                                "help" goal for the plugin.
                                -->
                                <id>generate-helpmojo</id>
                                <goals>
                                    <goal>helpmojo</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <!--
                        Here we're overriding configuration already provided
                        in rempl/pom.xml
                        -->
                        <artifactId>maven-site-plugin</artifactId>
                        <configuration>
                            <reportPlugins>
                                <plugin>
                                    <artifactId>maven-project-info-reports-plugin</artifactId>
                                    <!-- version is specified in pluginManagement -->
                                    <configuration>
                                        <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
                                        <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
                                    </configuration>
                                    <reports>
                                        <report>cim</report>
                                        <report>dependencies</report>
                                        <report>issue-tracking</report>
                                        <report>license</report>
                                        <report>mailing-list</report>
                                        <report>plugins</report>
                                        <report>project-team</report>
                                        <report>scm</report>
                                        <report>summary</report>
                                    </reports>
                                </plugin>
                                <plugin>
                                    <groupId>org.apache.maven.plugins</groupId>
                                    <artifactId>maven-plugin-plugin</artifactId>
                                    <version>2.6</version> <!-- 1 Jan 2011 -->
                                    <reports>
                                        <report>report</report>
                                    </reports>
                                </plugin>
                                <!--
                                This configuration leads to a strange defect in maven:
                                Could not find goal javadoc in plugin org.codehaus.mojo:cobertura-maven-plugin:2.4
                                among available goals dump-datafile, instrument, clean, help, check, cobertura
                                I don't know how to fix it, that's why I'm disabling
                                this report for now...
                                -->
                                <!--
                                <plugin>
                                    <groupId>org.codehaus.mojo</groupId>
                                    <artifactId>cobertura-maven-plugin</artifactId>
                                </plugin>
                                -->
                            </reportPlugins>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>static-analysis</id>
            <activation>
                <property><name>ci</name></property>
            </activation>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.codehaus.mojo</groupId>
                            <artifactId>cobertura-maven-plugin</artifactId>
                            <configuration>
                                <check>
                                    <!--
                                    @todo #15 temporary, in order to disable code coverage check. We
                                             should remove this plugin from here as soon as we
                                             cover all classes with tests.
                                    -->
                                    <haltOnFailure>false</haltOnFailure>
                                </check>
                                <instrumentation>
                                    <excludes>
                                        <!-- auto-generated classes for i18n -->
                                        <exclude>com/rempl/maven/HelpMojo.*</exclude>
                                    </excludes>
                                </instrumentation>
                            </configuration>
                        </plugin>
                        <plugin>
                            <!--
                            We're overriding parent configuration from rempl/pom.xml
                            -->
                            <artifactId>maven-pmd-plugin</artifactId>
                            <configuration>
                                <excludeRoots>
                                    <excludeRoot>
                                        ${project.build.directory}/generated-sources/plugin
                                    </excludeRoot>
                                </excludeRoots>
                            </configuration>
                        </plugin>
                        <plugin>
                            <!--
                            We're overriding parent configuration from rempl/pom.xml
                            -->
                            <groupId>org.codehaus.mojo</groupId>
                            <artifactId>findbugs-maven-plugin</artifactId>
                            <configuration>
                                <excludeFilterFile>
                                    ${basedir}/src/test/resources/findbugs/exclude.xml
                                </excludeFilterFile>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
                <plugins>
                    <plugin>
                        <!--
                        @todo 41: disabling because tests don't pass checkstyle, remove
                        this plugin from here when the test conform with checkstyle
                        -->
                        <!-- version and configuration is in pluginManagement section -->
                        <artifactId>maven-checkstyle-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>check-tests</id>
                                <phase>none</phase>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>non-site-production</id>
            <activation>
                <property><name>!site</name></property>
            </activation>
        </profile>
    </profiles>

    <reporting>
        <!--
        We don't need this section in Maven-3, since all reporting
        plugins are attached to maven-site-plugin, in rempl/pom.xml. However,
        "maven-docck-plugin" still doesn't understand such a new structure,
        and needs this "reporting" section. The defect is already reported
        in their tracker: http://jira.codehaus.org/browse/MDOCCK-20
        -->
        <plugins>
            <plugin>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.8</version>
            </plugin>
            <plugin>
                <artifactId>maven-jxr-plugin</artifactId>
                <version>2.1</version>
            </plugin>
        </plugins>
    </reporting>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <systemPropertyVariables>
                        <!--
                        This system variable is used in com.rempl.dbl.LogHelper:
                        int LEVEL_DEBUG = 0;
                        int LEVEL_INFO = 1;
                        int LEVEL_WARN = 2;
                        int LEVEL_ERROR = 3;
                        int LEVEL_FATAL = 4;
                        int LEVEL_DISABLED = 5;
                        -->
                        <level>LEVEL_DEBUG</level>
                    </systemPropertyVariables>
                </configuration>
                <executions>
                    <execution>
                        <!--
                        Run all tests again but with logging turned OFF. It is
                        necessary to increase code coverage. Somewhere in the
                        code we depend on logging configuration.
                        -->
                        <id>test-without-logging</id>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <!--
                        This execution is bound to such a strange phase because
                        if we bind it to "test" it will be merged with the main
                        goal, and configuration won't be effective.
                        -->
                        <phase>process-test-classes</phase>
                        <configuration>
                            <systemPropertyVariables>
                                <level>LEVEL_ERROR</level>
                            </systemPropertyVariables>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-invoker-plugin</artifactId>
                <version>1.5</version> <!-- 22 Mar 2011 -->
                <configuration>
                    <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
                    <goals>
                        <goal>clean</goal>
                    </goals>
                    <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
                    <noLog>true</noLog>
                    <!--
                    With this construct you can exclude certain IT projects.
                    <pomExcludes>
                        <pomExclude>simple-report/pom.xml</pomExclude>
                        <pomExclude>*/pom.xml</pomExclude>
                    </pomExcludes>
                    -->
                    <pomIncludes>
                        <pomInclude>*/pom.xml</pomInclude>
                    </pomIncludes>
                    <postBuildHookScript>verify</postBuildHookScript>
                    <preBuildHookScript>setup</preBuildHookScript>
                    <projectsDirectory>src/it</projectsDirectory>
                    <settingsFile>${basedir}/src/it/settings.xml</settingsFile>
                    <showErrors>true</showErrors>
                    <showVersion>true</showVersion>
                    <streamLogs>true</streamLogs>
                </configuration>
                <executions>
                    <execution>
                        <id>integration-test</id>
                        <goals>
                            <goal>install</goal>
                            <!--
                            * @todo #15 For some unknown reason this plugin fails when
                            *       executed as part of the entire reactor. When you run
                            *       it individually everything works fine. I don't know
                            *       what the problem is, and will investigate it further.
                            -->
                            <!-- <goal>run</goal> -->
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>




© 2015 - 2024 Weber Informatics LLC | Privacy Policy