diff options
author | Alexander Kriegisch <Alexander@Kriegisch.name> | 2021-05-15 10:19:08 +0700 |
---|---|---|
committer | Alexander Kriegisch <Alexander@Kriegisch.name> | 2021-05-16 07:05:28 +0700 |
commit | c6155643d6576449f7f721e0ca26a7be9c9dc93a (patch) | |
tree | 159716f15695e65bdfa21c764d8741e85bcf32a7 /aspectjrt/pom.xml | |
parent | de12ea9f2c59f4654c36e291e1f8160948d533eb (diff) | |
download | aspectj-c6155643d6576449f7f721e0ca26a7be9c9dc93a.tar.gz aspectj-c6155643d6576449f7f721e0ca26a7be9c9dc93a.zip |
Create javadoc for all public artifacts, fix dependencies
Sonatype OSSRH repository rules require source and javadoc JARs in
order to create staging repositories for releases to be promoted to
Maven Central. So I added build steps to unzip the source JARs and then
create Javadocs for them.
FIXME: This configuration works with JDK 16, but throws errors on other
JDK versions, e.g. 14. It looks as if the Maven Javadoc plugin does not
do a particularly good job applying the plugin settings in a way making
it work with different JDK javadoc tool versions. I am saying that,
because when using the tool directly on the console, it works with basic
settings and the correct classpath.
In order to enable creating uber JARs via Maven Shade in the future, I
also added missing dependencies. Maven Assembly descriptors just assume
that all the necessary class files and sources already exist where it
copies them from. But several of the dependency modules were not
explicitly listed as such by the uber JAR modules. I fixed that.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Diffstat (limited to 'aspectjrt/pom.xml')
-rw-r--r-- | aspectjrt/pom.xml | 70 |
1 files changed, 62 insertions, 8 deletions
diff --git a/aspectjrt/pom.xml b/aspectjrt/pom.xml index 0d6808a4d..c674b3601 100644 --- a/aspectjrt/pom.xml +++ b/aspectjrt/pom.xml @@ -50,14 +50,6 @@ <maven.deploy.skip>false</maven.deploy.skip> </properties> - <dependencies> - <dependency> - <groupId>org.aspectj</groupId> - <artifactId>runtime</artifactId> - <version>${project.version}</version> - </dependency> - </dependencies> - <build> <plugins> @@ -158,6 +150,59 @@ </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> + <fileset> + <directory>${project.build.directory}/${project.build.finalName}-sources.jar</directory> + <outputDirectory>${project.build.directory}/unpacked-sources</outputDirectory> + </fileset> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <version>3.2.0</version> + <executions> + <execution> + <id>javadoc-jar</id> + <phase>package</phase> + <goals> + <goal>jar</goal> + </goals> + <configuration> + <sourcepath>${project.build.directory}/unpacked-sources</sourcepath> + <!-- TODO: Include 'aj' package for ASM-renamed contained in aspectjtools? --> + <subpackages>org.aspectj</subpackages> + <!-- Deactivate doclint checks in order to suppress errors --> + <doclint>none</doclint> + <!-- Generate class use xref, making javadocs considerably bigger, but also more informative --> + <use>true</use> + <!-- FIXME: Why does it fail without this parameter? --> + <javadocVersion>8</javadocVersion> + </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> @@ -185,4 +230,13 @@ </plugins> </build> + + <dependencies> + <dependency> + <groupId>org.aspectj</groupId> + <artifactId>runtime</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> + </project> |