123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- <?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.7.BUILD-SNAPSHOT</version>
- </parent>
-
- <artifactId>aspectjtools</artifactId>
- <name>AspectJ Tools (Compiler)</name>
-
- <properties>
- <!-- By default, do not deploy artifacts - but deploy this public one -->
- <maven.deploy.skip>false</maven.deploy.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.aspectj,org.ow2.asm</includeGroupIds>
- <includeArtifactIds>org.eclipse.jdt.core,asm</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>aspectjtools-assembly</id>
- <phase>package</phase>
- <goals>
- <goal>single</goal>
- </goals>
- <configuration>
- <finalName>aspectjtools-${project.version}</finalName>
- <appendAssemblyId>false</appendAssemblyId>
- <archive>
- <manifestEntries>
- <Automatic-Module-Name>org.aspectj.tools</Automatic-Module-Name>
- </manifestEntries>
-
- <manifestSections>
- <manifestSection>
- <name>org/aspectj/tools/</name>
- <manifestEntries>
-
- <Specification-Title>AspectJ Tools Classes</Specification-Title>
- <Specification-Version>${project.version}</Specification-Version>
- <Specification-Vendor>https://www.eclipse.org/aspectj/</Specification-Vendor>
-
- <Implementation-Title>org.aspectj.tools</Implementation-Title>
- <Implementation-Version>${project.version}</Implementation-Version>
- <Implementation-Vendor>https://www.eclipse.org/aspectj/</Implementation-Vendor>
-
- <Bundle-Name>AspectJ Tools</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>aspectjtools-assembly.xml</descriptor>
- </descriptors>
- </configuration>
- </execution>
-
- <execution>
- <id>aspectjtools-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>
- <archive>
- </archive>
- <descriptors>
- <descriptor>aspectjtools-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>
-
- <!-- 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>
-
- </plugins>
- </build>
-
- <dependencies>
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>org.aspectj.ajdt.core</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>org.eclipse.jdt.core</artifactId>
- </dependency>
- <dependency>
- <groupId>org.ow2.asm</groupId>
- <artifactId>asm</artifactId>
- </dependency>
- </dependencies>
-
- </project>
|