123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407 |
- <?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/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectj-parent</artifactId>
- <version>1.9.22</version>
- </parent>
-
- <artifactId>aspectjweaver</artifactId>
-
- <name>AspectJ Weaver</name>
- <description>
- The AspectJ weaver applies aspects to Java classes. It can be used as a Java agent in order to apply load-time
- weaving (LTW) during class-loading and also contains the AspectJ runtime classes.
- </description>
- <url>https://www.eclipse.org/aspectj/</url>
-
- <licenses>
- <license>
- <name>Eclipse Public License - v 2.0</name>
- <url>https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt</url>
- <distribution>repo</distribution>
- </license>
- </licenses>
-
- <developers>
- <developer>
- <id>aclement</id>
- <name>Andy Clement</name>
- <email>aclement@vmware.com</email>
- </developer>
- <developer>
- <id>kriegaex</id>
- <name>Alexander Kriegisch</name>
- <email>kriegaex@aspectj.dev</email>
- </developer>
- </developers>
-
- <scm>
- <url>https://github.com/eclipse/org.aspectj</url>
- <connection>scm:git:https://github.com/eclipse/org.aspectj.git</connection>
- <developerConnection>scm:git:ssh://git@github.com:eclipse/org.aspectj.git</developerConnection>
- </scm>
-
- <properties>
- <!-- By default, do not deploy artifacts - but deploy this public one -->
- <maven.deploy.skip>false</maven.deploy.skip>
- <!-- By default, do not sign artifacts - but sign this public one -->
- <maven.gpg.skip>false</maven.gpg.skip>
- </properties>
-
- <build>
- <plugins>
-
- <!-- Skip creation of main + test JARs -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <executions>
- <execution>
- <id>default-jar</id>
- <phase>none</phase>
- </execution>
- <execution>
- <id>test-jar</id>
- <phase>none</phase>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>unzip-dependency-sources</id>
- <goals>
- <goal>unpack-dependencies</goal>
- </goals>
- <phase>prepare-package</phase>
- <configuration>
- <classifier>sources</classifier>
- <!--<failOnMissingClassifierArtifact>false</failOnMissingClassifierArtifact>-->
- <includeGroupIds>org.ow2.asm</includeGroupIds>
- <includeArtifactIds>asm,asm-commons</includeArtifactIds>
- <outputDirectory>${project.build.directory}/unzipped-sources</outputDirectory>
- <!-- Avoid accidentally shading test-scoped dependencies like JUnit -->
- <includeScope>runtime</includeScope>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-assembly-plugin</artifactId>
- <executions>
- <execution>
- <id>aspectjweaver-assembly</id>
- <phase>package</phase>
- <goals>
- <goal>single</goal>
- </goals>
- <configuration>
- <finalName>aspectjweaver-${project.version}</finalName>
- <appendAssemblyId>false</appendAssemblyId>
- <archive>
- <manifestEntries>
- <Automatic-Module-Name>org.aspectj.weaver</Automatic-Module-Name>
- <Premain-Class>org.aspectj.weaver.loadtime.Agent</Premain-Class>
- <Agent-Class>org.aspectj.weaver.loadtime.Agent</Agent-Class>
- <Can-Redefine-Classes>true</Can-Redefine-Classes>
- </manifestEntries>
-
- <manifestSections>
- <manifestSection>
- <name>org/aspectj/weaver/</name>
- <manifestEntries>
-
- <Specification-Title>AspectJ Weaver Classes</Specification-Title>
- <Specification-Version>${project.version}</Specification-Version>
- <Specification-Vendor>https://www.eclipse.org/aspectj/</Specification-Vendor>
-
- <Implementation-Title>org.aspectj.weaver</Implementation-Title>
- <Implementation-Version>${project.version}</Implementation-Version>
- <Implementation-Vendor>https://www.eclipse.org/aspectj/</Implementation-Vendor>
-
- <Bundle-Name>AspectJ Weaver</Bundle-Name>
- <Bundle-Version>${project.version}</Bundle-Version>
- <!--
- WARNING: Please avoid line breaks in manifest values! They are passed on like this:
- Assembly Plugin -> Plexus Archiver -> JRE java.util.jar.Manifest.write(OutputStream).
-
- The JRE Manifest class inserts hard line breaks always after 72 characters, no matter if those
- 72 characters contain line feeds, tabs or spaces. Hence, it can happen that unwanted blank lines
- end up in the middle of a manifest section, making the manifest invalid. Calls like e.g.
- 'java -cp aspectjtools.jar org.aspectj.tools.ajc.Main' can then fail with the absolutely
- unexpected error 'Could not find or load main class org.aspectj.tools.ajc.Main'.
-
- Alexander Kriegisch created this bug ticket:
- https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8263924
-
- In IntelliJ IDEA you can deactivate wrapping text inside XML tags like this:
- File | Settings | Editor | Code Style | XML | Wrap text -> deactivate
- -->
- <Bundle-Copyright>(C) Copyright 1999-2001 Xerox Corporation, 2002 Palo Alto Research Center, Incorporated (PARC), 2003-2020 Contributors. All Rights Reserved</Bundle-Copyright>
- </manifestEntries>
- </manifestSection>
- </manifestSections>
- </archive>
-
- <descriptors>
- <descriptor>aspectjweaver-assembly.xml</descriptor>
- </descriptors>
- </configuration>
- </execution>
-
- <execution>
- <id>aspectjweaver-sources-assembly</id>
- <phase>package</phase>
- <goals>
- <goal>single</goal>
- </goals>
- <configuration>
- <!-- The assembly ID 'sources' becomes the artifact classifier, exactly what we want -->
- <appendAssemblyId>true</appendAssemblyId>
- <skipAssembly>${maven.source.skip}</skipAssembly>
- <archive>
- </archive>
- <descriptors>
- <descriptor>aspectjweaver-sources-assembly.xml</descriptor>
- </descriptors>
- </configuration>
- </execution>
-
- </executions>
- </plugin>
-
- <!--
- Relocate ASM from 'org.objectweb.asm' to 'aj.org.objectweb.asm'
-
- TODO: Using Maven Shade after Maven Assembly instead of creating uber JAR and relocating package names at the
- same time is suboptimal and maybe slower than doing both at the same time. Migrating from Assembly to Shade
- requires all dependencies to produce source JARs, though, which currently is not the case. Because we also
- want to create a complete source JAR, for now we keep Assembly around, because it manually copies project
- sources from their respective directories before zipping them up.
- -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <configuration>
- <createSourcesJar>true</createSourcesJar>
- <createDependencyReducedPom>false</createDependencyReducedPom>
- <shadedArtifactAttached>false</shadedArtifactAttached>
- </configuration>
- <executions>
- <execution>
- <id>asm-relocate</id>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
- <minimizeJar>false</minimizeJar>
- <shadeSourcesContent>true</shadeSourcesContent>
- <artifactSet>
- <includes>
- <include>${project.groupId}:${project.artifactId}</include>
- </includes>
- </artifactSet>
- <relocations>
- <relocation>
- <pattern>org.objectweb.asm</pattern>
- <shadedPattern>aj.org.objectweb.asm</shadedPattern>
- </relocation>
- </relocations>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>truezip-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>unzip-relocated-sources</id>
- <phase>package</phase>
- <goals>
- <goal>copy</goal>
- </goals>
- <configuration>
- <!--
- Skip, if javadoc generation is also meant to be skipped, which is the default unless the 'release'
- profile is active or the property is overridden manually to be false. See property definitions in parent
- POM for default case and release profile.
- -->
- <skip>${maven.javadoc.skip}</skip>
- <verbose>true</verbose>
- <filesets>
- <fileset>
- <directory>${project.build.directory}/${project.build.finalName}-sources.jar/org/aspectj</directory>
- <outputDirectory>${project.build.directory}/unpacked-sources/org/aspectj</outputDirectory>
- </fileset>
- <fileset>
- <directory>${project.build.directory}/${project.build.finalName}-sources.jar/aj</directory>
- <outputDirectory>${project.build.directory}/unpacked-sources/aj</outputDirectory>
- </fileset>
- </filesets>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <executions>
- <execution>
- <id>javadoc-jar</id>
- <phase>package</phase>
- <goals>
- <goal>jar</goal>
- </goals>
- <configuration>
- <sourcepath>${project.build.directory}/unpacked-sources</sourcepath>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <!-- Remove javadoc version number from HTML comment to keep website diffs small -->
- <execution>
- <id>filter-javadocs</id>
- <configuration>
- <skip>${maven.javadoc.skip}</skip>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <executions>
- <execution>
- <id>copy-javadoc-to-dist</id>
- <phase>package</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <!--
- Skip, if javadoc generation is also meant to be skipped, which is the default unless the 'release'
- profile is active or the property is overridden manually to be false. See property definitions in parent
- POM for default case and release profile.
- -->
- <skip>${maven.javadoc.skip}</skip>
- <outputDirectory>${project.basedir}/../aj-build/dist/docs/doc/weaver-api</outputDirectory>
- <resources>
- <resource>
- <directory>${project.build.directory}/apidocs</directory>
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <!-- Caveat: Attaching the flattened POM needs packaging=jar, so do not use packaging=pom for this module -->
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>flatten-maven-plugin</artifactId>
- <executions>
- <!-- Remove dependencies declared in this POM (if any) from uber JAR and strip down POM -->
- <execution>
- <id>flatten</id>
- <phase>process-resources</phase>
- <goals>
- <goal>flatten</goal>
- </goals>
- <configuration>
- <flattenMode>oss</flattenMode>
- <pomElements>
- <dependencies>remove</dependencies>
- <repositories>remove</repositories>
- </pomElements>
- <outputDirectory>${project.build.directory}</outputDirectory>
- <flattenedPomFilename>flattened-pom.xml</flattenedPomFilename>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <!-- Deploy this module to Nexus (Sonatype OSSRH, releases promotable to Maven Central) -->
- <plugin>
- <groupId>org.sonatype.plugins</groupId>
- <artifactId>nexus-staging-maven-plugin</artifactId>
- </plugin>
-
- </plugins>
- <pluginManagement>
- <plugins>
- <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
- <plugin>
- <groupId>org.eclipse.m2e</groupId>
- <artifactId>lifecycle-mapping</artifactId>
- <version>1.0.0</version>
- <configuration>
- <lifecycleMappingMetadata>
- <pluginExecutions>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>
- org.codehaus.mojo
- </groupId>
- <artifactId>
- flatten-maven-plugin
- </artifactId>
- <versionRange>
- [1.2.2,)
- </versionRange>
- <goals>
- <goal>flatten</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <ignore></ignore>
- </action>
- </pluginExecution>
- </pluginExecutions>
- </lifecycleMappingMetadata>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
-
- <dependencies>
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>weaver</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>loadtime</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.ow2.asm</groupId>
- <artifactId>asm</artifactId>
- </dependency>
- <dependency>
- <groupId>org.ow2.asm</groupId>
- <artifactId>asm-commons</artifactId>
- </dependency>
- </dependencies>
-
- </project>
|