aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Kriegisch <Alexander@Kriegisch.name>2021-04-09 14:00:57 +0700
committerAlexander Kriegisch <Alexander@Kriegisch.name>2021-04-09 14:00:57 +0700
commitb6779de5d76af4cf89de19943324b592bb067c2d (patch)
tree02956d3746f77edc210a6891ddcd82cef8120002
parentfe91fe26245d1f20b9ee1b4bb163969a89993a3f (diff)
downloadaspectj-b6779de5d76af4cf89de19943324b592bb067c2d.tar.gz
aspectj-b6779de5d76af4cf89de19943324b592bb067c2d.zip
Module 'asm-renamed' now deploys to GitHub Packages
This means that instead of a system-scoped dependency we now have a regular one. The 'libx' module also downloads binary and source JARs redundantly into the libraries directory in order to be found there by other scripts and tests. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
-rw-r--r--ajdoc/pom.xml7
-rw-r--r--asm-renamed/pom.xml201
-rw-r--r--libx/pom.xml27
-rw-r--r--pom.xml7
-rw-r--r--tests/pom.xml7
-rw-r--r--weaver/pom.xml7
6 files changed, 239 insertions, 17 deletions
diff --git a/ajdoc/pom.xml b/ajdoc/pom.xml
index 3b1b64f5d..f7ae7ab00 100644
--- a/ajdoc/pom.xml
+++ b/ajdoc/pom.xml
@@ -40,13 +40,6 @@
<artifactId>maven-jdk-tools-wrapper</artifactId>
<version>0.1</version>
</dependency>
- <dependency>
- <groupId>asm</groupId>
- <artifactId>asm</artifactId>
- <version>1.0</version>
- <scope>system</scope>
- <systemPath>${project.basedir}/../lib/asm/asm-9.1.renamed.jar</systemPath>
- </dependency>
<!-- Dependencies needed for running tests in this module independently of complete reactor build -->
<dependency>
diff --git a/asm-renamed/pom.xml b/asm-renamed/pom.xml
new file mode 100644
index 000000000..bb29f7838
--- /dev/null
+++ b/asm-renamed/pom.xml
@@ -0,0 +1,201 @@
+<?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>
+
+ <!-- The AspectJ root POM is the parent, but this module is not a submodule -->
+ <parent>
+ <groupId>org.aspectj</groupId>
+ <artifactId>aspectj-parent</artifactId>
+ <version>1.9.7.BUILD-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>asm-renamed</artifactId>
+ <version>${asm.version}</version>
+
+ <name>ASM for AspectJ</name>
+ <description>
+ This module relocates the original ASM artifact from package name 'org.objectweb.asm' to 'aj.org.objectweb.asm',
+ using Maven Shade Plugin.
+
+ In order to avoid committing the binary to the AspectJ SCM repository and using it as a system-scoped dependency, we
+ deploy it to GitHub Packages.
+
+ Whenever it is necessary to upgrade to a new ASM version in order to make AspectJ compatible with a new Java
+ version, please build and deploy this module after upgrading property 'asm.version'. Make sure you have a GitHub
+ token with the necessary access rights and section like this in your settings.xml:
+
+ <![CDATA[
+ <server>
+ <id>github</id>
+ <username>MY_GITHUB_USER</username>
+ <password>MY_GITHUB_TOKEN</password>
+ </server>
+ ]]>
+
+ Then you should be able to run 'mvn clean deploy' for this module and be fine.
+
+ Caveat for IntelliJ IDEA: The project cannot be built in IDEA (Ctrl-F9) if this module is visible in the Maven view.
+ If so, right-click it and select "Unlink Maven Projects". Unfortunately, "Ignore Projects" is not enough. If Maven
+ knows of this Maven module, it cannot compile other modules depending on shaded class names, because it cannot find
+ the binaries. IDEA will just stop looking at the local Maven repository in this case.
+ </description>
+
+ <distributionManagement>
+ <repository>
+ <id>github</id>
+ <name>GitHub Packages Release</name>
+ <url>https://maven.pkg.github.com/kriegaex/aspectj-packages</url>
+ <uniqueVersion>false</uniqueVersion>
+ </repository>
+ <snapshotRepository>
+ <id>github</id>
+ <name>GitHub Packages Snapshot</name>
+ <url>https://maven.pkg.github.com/kriegaex/aspectj-packages</url>
+ <uniqueVersion>true</uniqueVersion>
+ </snapshotRepository>
+ </distributionManagement>
+
+ <build>
+ <plugins>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <executions>
+ <!-- Nothing to compile in this module -->
+ <execution>
+ <id>default-compile</id>
+ <phase>none</phase>
+ </execution>
+ <execution>
+ <id>default-testCompile</id>
+ <phase>none</phase>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <configuration>
+ <!-- Re-create original source JAR in order to avoid re-shading already shaded JAR in non-clean builds -->
+ <forceCreation>true</forceCreation>
+ <!--
+ Avoid attaching the source JAR here, because Maven Shade will add the source uber JAR later. Because both
+ JARs have the same final name, Maven Install/Deploy would see two artifacts attached to the build, which
+ would lead to double deployment and hence to an error "Transfer failed for ...-sources.jar 409 Conflict".
+ See also https://issues.apache.org/jira/browse/MDEPLOY-254 and comments by Alexander Kriegisch.
+ -->
+ <attach>false</attach>
+ <archive>
+ <addMavenDescriptor>false</addMavenDescriptor>
+ </archive>
+ </configuration>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <phase>package</phase>
+ <goals>
+ <goal>jar-no-fork</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <addMavenDescriptor>false</addMavenDescriptor>
+ </archive>
+ <!-- Re-create original JAR in order to avoid re-shading already shaded JAR in non-clean builds -->
+ <forceCreation>true</forceCreation>
+ </configuration>
+ <executions>
+ <execution>
+ <!-- Avoid creating test JAR -->
+ <id>test-jar</id>
+ <phase>none</phase>
+ </execution>
+ </executions>
+ </plugin>
+
+ <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>
+ <excludes>
+ <exclude>${project.groupId}</exclude>
+ </excludes>
+ </artifactSet>
+ <filters>
+ <filter>
+ <artifact>*</artifact>
+ <excludes>
+ <exclude>META-INF/*</exclude>
+ </excludes>
+ </filter>
+ </filters>
+ <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>flatten-maven-plugin</artifactId>
+ <version>1.2.2</version>
+ <executions>
+ <!-- Remove shaded dependencies from uber JAR -->
+ <execution>
+ <id>flatten</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>flatten</goal>
+ </goals>
+ <configuration>
+ <flattenMode>oss</flattenMode>
+ <pomElements>
+ <dependencies>remove</dependencies>
+ </pomElements>
+ <outputDirectory>${project.build.directory}</outputDirectory>
+ <flattenedPomFilename>flattened-pom.xml</flattenedPomFilename>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.ow2.asm</groupId>
+ <artifactId>asm</artifactId>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/libx/pom.xml b/libx/pom.xml
index c30de98e0..4c4817e79 100644
--- a/libx/pom.xml
+++ b/libx/pom.xml
@@ -175,6 +175,28 @@
<destFileName>jdtcore-for-aspectj-src.zip</destFileName>
</artifactItem>
+ <artifactItem>
+ <!-- Available from GitHub Packages (needs special repository declaration) -->
+ <groupId>org.aspectj</groupId>
+ <artifactId>asm-renamed</artifactId>
+ <version>${asm.version}</version>
+ <type>jar</type>
+ <overWrite>false</overWrite>
+ <outputDirectory>asm</outputDirectory>
+ <destFileName>asm-${asm.version}.renamed.jar</destFileName>
+ </artifactItem>
+ <artifactItem>
+ <!-- Available from GitHub Packages (needs special repository declaration) -->
+ <groupId>org.aspectj</groupId>
+ <artifactId>asm-renamed</artifactId>
+ <version>${asm.version}</version>
+ <type>java-source</type>
+ <classifier>sources</classifier>
+ <overWrite>false</overWrite>
+ <outputDirectory>asm</outputDirectory>
+ <destFileName>asm-${asm.version}.renamed-src.zip</destFileName>
+ </artifactItem>
+
<!--
How relevant is JRockit in 2021?
https://en.wikipedia.org/wiki/JRockit
@@ -538,6 +560,7 @@
<directory>.</directory>
<includes>
<include>ant/**</include>
+ <include>asm/**</include>
<include>commons/**</include>
<include>jarjar/**</include>
<include>jdiff/**</include>
@@ -558,6 +581,10 @@
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
+ <artifactId>asm-renamed</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.aspectj</groupId>
<artifactId>org.eclipse.jdt.core</artifactId>
</dependency>
</dependencies>
diff --git a/pom.xml b/pom.xml
index 09acc2be6..ade7b903d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -72,6 +72,7 @@
<!-- FYI: These are NOT meant to be sub-modules but a stand-alone projects built and deployed independently. -->
<!--
+ <module>asm-renamed</module>
<module>libx</module>
-->
@@ -233,6 +234,7 @@
<files>
<file>${lib.directory}/ant/bin/ant</file>
<file>${lib.directory}/ant/lib/junit.jar</file>
+ <file>${lib.directory}/asm/asm-${asm.version}.renamed.jar</file>
<file>${lib.directory}/commons/commons.jar</file>
<file>${lib.directory}/jarjar/jarjar-1.3.jar</file>
<file>${lib.directory}/jdtcore-aj/jdtcore-for-aspectj.jar</file>
@@ -272,6 +274,11 @@
<artifactId>commons-beanutils</artifactId>
<version>${lib.commons.beanutils.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.aspectj</groupId>
+ <artifactId>asm-renamed</artifactId>
+ <version>${asm.version}</version>
+ </dependency>
</dependencies>
</dependencyManagement>
diff --git a/tests/pom.xml b/tests/pom.xml
index 11f91a216..0f766d006 100644
--- a/tests/pom.xml
+++ b/tests/pom.xml
@@ -50,11 +50,8 @@
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>asm</groupId>
- <artifactId>asm</artifactId>
- <version>1.0</version>
- <scope>system</scope>
- <systemPath>${project.basedir}/../lib/asm/asm-9.1.renamed.jar</systemPath>
+ <groupId>org.aspectj</groupId>
+ <artifactId>asm-renamed</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
diff --git a/weaver/pom.xml b/weaver/pom.xml
index 2973f7504..6bf419ab8 100644
--- a/weaver/pom.xml
+++ b/weaver/pom.xml
@@ -66,11 +66,8 @@
</dependency>
-->
<dependency>
- <groupId>asm</groupId>
- <artifactId>asm</artifactId>
- <version>1.0</version>
- <scope>system</scope>
- <systemPath>${project.basedir}/../lib/asm/asm-9.1.renamed.jar</systemPath>
+ <groupId>org.aspectj</groupId>
+ <artifactId>asm-renamed</artifactId>
</dependency>
</dependencies>
</project>