blob: aece83da3f2a80bad8e214a9d04ed12981619186 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-parent</artifactId>
<version>47</version>
</parent>
<artifactId>commons-weaver-base</artifactId>
<version>2.0</version>
<packaging>pom</packaging>
<name>Apache Commons Weaver</name>
<description>
Apache Commons Weaver provides an easy way to enhance compiled Java
classes by generating ("weaving") bytecode into those classes.
</description>
<url>http://commons.apache.org/proper/commons-weaver</url>
<issueManagement>
<system>jira</system>
<url>http://issues.apache.org/jira/browse/WEAVER</url>
</issueManagement>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<commons.componentid>weaver</commons.componentid>
<commons.module.name>org.apache.commons.weaver</commons.module.name>
<commons.release.version>2.0</commons.release.version>
<commons.release.name>commons-weaver-${commons.release.version}</commons.release.name>
<commons.rc.version>RC1</commons.rc.version>
<commons.jira.id>WEAVER</commons.jira.id>
<commons.jira.pid>12315320</commons.jira.pid>
<commons.site.path>commons-weaver</commons.site.path>
<commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/${commons.site.path}</commons.scmPubUrl>
<commons.japicmp.version>0.11.1</commons.japicmp.version>
<!-- remove after 2.0 release: -->
<commons.japicmp.breakBuildOnBinaryIncompatibleModifications>false</commons.japicmp.breakBuildOnBinaryIncompatibleModifications>
<!-- most Java-related items are defined in parent/pom.xml;
define these here for the animal-sniffer config of commons-parent: -->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<ant.version>1.9.4</ant.version>
<asm.version>6.2.1</asm.version>
</properties>
<developers>
<developer>
<id>kinow</id>
<name>Bruno P. Kinoshita</name>
<email>kinow AT apache DOT org</email>
<organization>Apache</organization>
</developer>
<developer>
<id>mbenson</id>
<name>Matt Benson</name>
<email>mbenson AT apache DOT org</email>
<organization>Apache</organization>
</developer>
<developer>
<id>struberg</id>
<name>Mark Struberg</name>
<email>struberg AT apache DOT org</email>
<organization>Apache</organization>
</developer>
</developers>
<scm>
<connection>scm:git:http://gitbox.apache.org/repos/asf/commons-weaver.git</connection>
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/commons-weaver.git</developerConnection>
<url>http://gitbox.apache.org/repos/asf/commons-weaver.git</url>
<tag>2.0_RC1</tag>
</scm>
<distributionManagement>
<site>
<id>commons.site</id>
<name>Apache Commons Site SVN</name>
<url>scm:svn:${commons.scmPubUrl}</url>
</site>
</distributionManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<configuration combine.self="override">
<!-- disable passphrase setup from parent -->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.1</version>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<configuration>
<excludeSubProjects>false</excludeSubProjects>
<excludes>
<!-- notice -->
<exclude>LICENSE-asm*.txt</exclude>
<!-- generated -->
<exclude>**/target/**</exclude>
<exclude>**/dependency-reduced-pom.xml</exclude>
<!-- hidden -->
<exclude>**/.*</exclude>
<exclude>**/.*/**</exclude>
<!-- binary -->
<exclude>**/*.svg</exclude>
<!-- empty -->
<exclude>**/src/site/resources/profile.japicmp</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.9</version>
</plugin>
<!-- override skip property of parent pom, can be removed once
we adopt parent 48+ -->
<plugin>
<groupId>com.github.siom79.japicmp</groupId>
<artifactId>japicmp-maven-plugin</artifactId>
<configuration>
<skip>false</skip>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>copy-notices</id>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target xmlns:if="ant:if" xmlns:unless="ant:unless">
<presetdef name="truth">
<condition value="true" else="false" />
</presetdef>
<macrodef name="seek">
<attribute name="name" />
<attribute name="addto" />
<sequential>
<augment id="@{addto}-sought">
<string value="@{name}" />
</augment>
<union id="@{name}-ws" />
<step dir="${project.basedir}" name="@{name}" addto="@{addto}" ws="@{name}-ws" />
</sequential>
</macrodef>
<macrodef name="step">
<attribute name="name" />
<attribute name="dir" />
<attribute name="addto" />
<attribute name="ws" />
<sequential>
<local name="seenDir" />
<truth property="seenDir">
<resourcecount when="gt" count="0">
<intersect id="intersection">
<resources refid="@{ws}" />
<file name="@{dir}" />
</intersect>
</resourcecount>
</truth>
<sequential unless:true="${seenDir}">
<augment id="@{ws}">
<file file="@{dir}" />
</augment>
<local name="exists" />
<truth property="exists">
<available file="@{dir}/@{name}" />
</truth>
<sequential if:true="${exists}">
<augment id="@{addto}">
<file file="@{dir}/@{name}" />
</augment>
</sequential>
<sequential unless:true="${exists}">
<local name="parent.dir" />
<dirname property="parent.dir" file="@{dir}" />
<step dir="${parent.dir}" name="@{name}" addto="@{addto}" ws="@{ws}" />
</sequential>
</sequential>
</sequential>
</macrodef>
<truth property="pom-only">
<equals arg1="${project.packaging}" arg2="pom" />
</truth>
<sequential unless:true="${pom-only}">
<union id="notices" />
<union id="notices-sought" />
<seek name="LICENSE.txt" addto="notices" />
<seek name="NOTICE.txt" addto="notices" />
<seek name="LICENSE-asm${asm.version}.txt" addto="notices" />
<resourcecount refid="notices-sought" property="notices.sought" />
<condition property="found-all-notices">
<resourcecount refid="notices" when="eq" count="${notices.sought}" />
</condition>
<sequential unless:set="found-all-notices">
<echo>Notices sought:</echo>
<pathconvert refid="notices-sought" pathsep="${line.separator}" />
<echo>Notices found:</echo>
<pathconvert refid="notices" pathsep="${line.separator}" />
<fail message="Some notices not found." />
</sequential>
<mkdir dir="${project.build.directory}/generated-resources/notices/META-INF" />
<copy verbose="true" todir="${project.build.directory}/generated-resources/notices/META-INF">
<resources refid="notices" />
</copy>
<mkdir dir="${project.build.directory}/generated-test-resources/notices/META-INF" />
<copy verbose="true" todir="${project.build.directory}/generated-test-resources/notices/META-INF">
<resources refid="notices" />
</copy>
<mkdir dir="${project.build.directory}/apidocs/META-INF" />
<copy verbose="true" todir="${project.build.directory}/apidocs/META-INF">
<resources refid="notices" />
</copy>
</sequential>
</target>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>${ant.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
<tag>${commons.release.version}_${commons.rc.version}</tag>
<preparationGoals>changes:changes-check</preparationGoals>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
<configuration>
<content>${project.build.directory}/staging</content>
<ignorePathsToDelete>
<ignorePathToDelete>javadocs</ignorePathToDelete>
</ignorePathsToDelete>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-module-markdown</artifactId>
<version>1.8</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<inherited>false</inherited>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-source-notices</id>
<phase>generate-resources</phase>
<goals>
<goal>add-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>${project.build.directory}/generated-resources/notices</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<inherited>false</inherited>
<configuration>
<checkoutDirectoryName>commons-weaver</checkoutDirectoryName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<inherited>false</inherited>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<inherited>false</inherited>
<configuration>
<aggregate>true</aggregate>
</configuration>
</plugin>
</plugins>
</reporting>
<profiles>
<profile>
<id>java10plus</id>
<activation>
<jdk>[10,)</jdk>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.github.siom79.japicmp</groupId>
<artifactId>japicmp-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.0.1</version>
</dependency>
<!-- needed temporarily to compare against the 1.x API -->
<dependency>
<groupId>javax.activation</groupId>
<artifactId>javax.activation-api</artifactId>
<version>1.2.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<inherited>false</inherited>
<executions>
<execution>
<goals>
<goal>single</goal>
</goals>
<!-- disable assembly:single from commons-parent
release profile; multimodule assembly handled
by dist module -->
<phase />
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<modules>
<module>build-tools</module>
<module>parent</module>
<module>processor</module>
<module>maven-plugin</module>
<module>ant</module>
<module>modules</module>
<module>dist</module>
</modules>
</project>