]> source.dussan.org Git - aspectj.git/commitdiff
Create javadoc for all public artifacts, fix dependencies
authorAlexander Kriegisch <Alexander@Kriegisch.name>
Sat, 15 May 2021 03:19:08 +0000 (10:19 +0700)
committerAlexander Kriegisch <Alexander@Kriegisch.name>
Sun, 16 May 2021 00:05:28 +0000 (07:05 +0700)
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>
asm-renamed/pom.xml
aspectjmatcher/pom.xml
aspectjrt/pom.xml
aspectjtools/pom.xml
aspectjweaver/pom.xml
lib/pom.xml
pom.xml
runtime/pom.xml

index a94b1863cf3d0f2b56021580ef3af171a864c033..e62b985655e86527489ba4cfdf82cc383486dae9 100644 (file)
     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 aspectj.dev.
+    deploy it to and Sonatype OSSRH separately, promoting releases to Maven Central. From there it can be consumed by
+    the main AspectJ build.
 
     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 the
-    credentials for write access to the aspectj.dev Maven repository WebDAV share and the correct server, profile and
-    property entries in settings.xml.
-
-    Then you should be able to run 'mvn clean deploy' for this module and be fine.
+    version, please build and deploy this module after upgrading property 'asm.version'.
 
     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>
+  <url>https://www.eclipse.org/aspectj/</url>
+
+  <licenses>
+    <!--
+      Even though we release the package-relocated version under the 'org.aspectj' group ID, we do respect the original
+      licence, hence BSD-3 and not Eclipse
+    -->
+    <license>
+      <name>BSD-3-Clause</name>
+      <url>https://asm.ow2.io/license.html</url>
+    </license>
+  </licenses>
+
+  <developers>
+    <!--
+      AspectJ developers only. For a list of original developers, mailing lists, SCM, issue management information etc.,
+      please see the original upstream POM, e.g. https://repo1.maven.org/maven2/org/ow2/asm/asm/9.1/asm-9.1.pom
+    -->
+    <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 one used by the main build -->
         <artifactId>maven-shade-plugin</artifactId>
         <configuration>
           <createSourcesJar>true</createSourcesJar>
+          <!-- Flatten Maven plugin takes care of customising the POM for deployment -->
           <createDependencyReducedPom>false</createDependencyReducedPom>
           <shadedArtifactAttached>false</shadedArtifactAttached>
         </configuration>
         </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>
+              <!-- Deactivate doclint checks in order to suppress errors -->
+              <doclint>none</doclint>
+              <subpackages>aj</subpackages>
+              <javadocVersion>8</javadocVersion>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>flatten-maven-plugin</artifactId>
               <goal>flatten</goal>
             </goals>
             <configuration>
-              <flattenMode>defaults</flattenMode>
+              <flattenMode>oss</flattenMode>
               <pomElements>
                 <dependencies>remove</dependencies>
+                <repositories>remove</repositories>
               </pomElements>
               <outputDirectory>${project.build.directory}</outputDirectory>
               <flattenedPomFilename>flattened-pom.xml</flattenedPomFilename>
index e0cd44e8affe54df246fbdbf33e464efb723ac40..ff456caa18d48d6e011da53335678801307b2e8d 100644 (file)
                                </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>
 
                </plugins>
        </build>
+
+       <dependencies>
+               <dependency>
+                       <groupId>org.aspectj</groupId>
+                       <artifactId>util</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.aspectj</groupId>
+                       <artifactId>bridge</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.aspectj</groupId>
+                       <artifactId>org.aspectj.matcher</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+       </dependencies>
+
 </project>
index 0d6808a4d9372cb54ada9e838de3ee8375931d3d..c674b36017bf7aca40d2905e63678176dd6cae11 100644 (file)
                <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>
 
                                </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>
 
                </plugins>
        </build>
+
+       <dependencies>
+               <dependency>
+                       <groupId>org.aspectj</groupId>
+                       <artifactId>runtime</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+       </dependencies>
+
 </project>
index 2941aab3e99a0fe50a29e9b60d9730194dc12fb0..03bb6ed96a847fb07c55e98527983ab04cc59065 100644 (file)
                                </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>
+                                                       <!-- TODO: Include 'aj' package for ASM-renamed contained in aspectjtools? -->
+                                                       <fileset>
+                                                               <directory>${project.build.directory}/${project.build.finalName}-sources.jar/org/aspectj</directory>
+                                                               <outputDirectory>${project.build.directory}/unpacked-sources/org/aspectj</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>
+                                               <!--
+                                                 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.
+                                               -->
+                                               <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>
                                        </execution>
                                </executions>
                        </plugin>
-
                </plugins>
+
        </build>
 
        <dependencies>
                <dependency>
                        <groupId>org.aspectj</groupId>
-                       <artifactId>org.aspectj.ajdt.core</artifactId>
+                       <artifactId>org.eclipse.jdt.core</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.aspectj</groupId>
+                       <artifactId>asm-renamed</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.aspectj</groupId>
+                       <artifactId>runtime</artifactId>
                        <version>${project.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.aspectj</groupId>
-                       <artifactId>org.eclipse.jdt.core</artifactId>
+                       <artifactId>weaver</artifactId>
+                       <version>${project.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.aspectj</groupId>
-                       <artifactId>asm-renamed</artifactId>
+                       <artifactId>util</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.aspectj</groupId>
+                       <artifactId>bridge</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.aspectj</groupId>
+                       <artifactId>asm</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.aspectj</groupId>
+                       <artifactId>org.aspectj.matcher</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.aspectj</groupId>
+                       <artifactId>bcel-builder</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.aspectj</groupId>
+                       <artifactId>loadtime</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.aspectj</groupId>
+                       <artifactId>ajbrowser</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.aspectj</groupId>
+                       <artifactId>ajde</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.aspectj</groupId>
+                       <artifactId>ajde.core</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.aspectj</groupId>
+                       <artifactId>ajdoc</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.aspectj</groupId>
+                       <artifactId>org.aspectj.ajdt.core</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.aspectj</groupId>
+                       <artifactId>taskdefs</artifactId>
+                       <version>${project.version}</version>
                </dependency>
        </dependencies>
 
index 806622208319cf03cb7eaec18a73ebc7c18c3baa..4db51b332789dd1b5f269d943dce840232f350fd 100644 (file)
                                </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>
+                                                       <!-- TODO: Include 'aj' package for ASM-renamed contained in aspectjweaver? -->
+                                                       <fileset>
+                                                               <directory>${project.build.directory}/${project.build.finalName}-sources.jar/org/aspectj</directory>
+                                                               <outputDirectory>${project.build.directory}/unpacked-sources/org/aspectj</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>
+                                               <!--
+                                                 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.
+                                               -->
+                                               <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>
index 807d8a344deda109b9275df4e06eba314b1b61bd..a8cddc23afc07ba619cc02e268a7f0d724cae966 100644 (file)
           <plugin>
             <groupId>org.codehaus.mojo</groupId>
             <artifactId>truezip-maven-plugin</artifactId>
-            <version>1.2</version>
             <!--
               The TrueZIP plugin can seamlessly copy out of or into (nested) ZIP files as if they were normal file system
               paths. No additional moves and deletes with Antrun are necessary.
diff --git a/pom.xml b/pom.xml
index 17342e9b6a439fcad7227be16274f6a0701462d2..166549658580bf55c76736815e9372c2fcbec91b 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -1,13 +1,13 @@
 <?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"
+<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>
 
        <groupId>org.aspectj</groupId>
        <artifactId>aspectj-parent</artifactId>
-       <packaging>pom</packaging>
        <version>1.9.7.BUILD-SNAPSHOT</version>
+       <packaging>pom</packaging>
+
        <name>AspectJ Parent Project</name>
 
        <properties>
                <!-- Basic build properties -->
                <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
                <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+
                <!-- By default, do not deploy artifacts - override for the ones which actually should be deployed -->
                <maven.deploy.skip>true</maven.deploy.skip>
+               <!-- By default, do create javadoc - override in release profile or manually -->
+               <maven.javadoc.skip>true</maven.javadoc.skip>
+
                <!-- Dependency versions -->
                <jdt.core.version>3.25.0-SNAPSHOT</jdt.core.version>
                <asm.version>9.1</asm.version>
        </properties>
 
        <distributionManagement>
-               <repository>
-                       <id>aspectj-dev-deploy</id>
-                       <name>AspectJ.dev WebDAV Releases</name>
-                       <!-- Please specify the local mount point for the WebDAV share in your settings.xml -->
-                       <url>${aspectj.dev.webdav.share}</url>
-                       <uniqueVersion>false</uniqueVersion>
-               </repository>
                <snapshotRepository>
-                       <id>aspectj-dev-deploy</id>
-                       <name>AspectJ.dev WebDAV Snapshots</name>
-                       <!-- Please specify the local mount point for the WebDAV share in your settings.xml -->
-                       <url>${aspectj.dev.webdav.share}</url>
-                       <uniqueVersion>true</uniqueVersion>
+                       <id>ossrh</id>
+                       <url>https://oss.sonatype.org/content/repositories/snapshots</url>
                </snapshotRepository>
+               <repository>
+                       <id>ossrh</id>
+                       <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
+               </repository>
        </distributionManagement>
 
        <repositories>
                <!--
-      Repeat Central definition from super POM https://maven.apache.org/ref/3.6.3/maven-model-builder/super-pom.html.
-      Define it as the first repository to search at, otherwise Maven would always search any other repositories defined
-      in the POM or in settings.xml first, slowing down the build, because most artifacts reside at Maven Central. See
-      https://maven.apache.org/guides/mini/guide-multiple-repositories.html#repository-order for more details.
-    -->
+                       Repeat Central definition from super POM https://maven.apache.org/ref/3.6.3/maven-model-builder/super-pom.html.
+                       Define it as the first repository to search at, otherwise Maven would always search any other repositories defined
+                       in the POM or in settings.xml first, slowing down the build, because most artifacts reside at Maven Central. See
+                       https://maven.apache.org/guides/mini/guide-multiple-repositories.html#repository-order for more details.
+               -->
                <repository>
                        <id>central</id>
                        <name>Central Repository</name>
 
        <pluginRepositories>
                <!--
-      Repeat Central definition from super POM https://maven.apache.org/ref/3.6.3/maven-model-builder/super-pom.html.
-      Define it as the first repository to search at, otherwise Maven would always search any other repositories defined
-      in the POM or in settings.xml first, slowing down the build, because most artifacts reside at Maven Central. See
-      https://maven.apache.org/guides/mini/guide-multiple-repositories.html#repository-order for more details.
-    -->
+                       Repeat Central definition from super POM https://maven.apache.org/ref/3.6.3/maven-model-builder/super-pom.html.
+                       Define it as the first repository to search at, otherwise Maven would always search any other repositories defined
+                       in the POM or in settings.xml first, slowing down the build, because most artifacts reside at Maven Central. See
+                       https://maven.apache.org/guides/mini/guide-multiple-repositories.html#repository-order for more details.
+               -->
                <pluginRepository>
                        <id>central</id>
                        <name>Central Repository</name>
                                <jvm.arg.addOpens>--add-opens java.base/java.lang=ALL-UNNAMED</jvm.arg.addOpens>
                        </properties>
                </profile>
+               <profile>
+                       <id>release</id>
+                       <properties>
+                               <!-- By default, do create javadoc - override in release profile -->
+                               <maven.javadoc.skip>false</maven.javadoc.skip>
+                       </properties>
+                       <build>
+                               <plugins>
+                                       <plugin>
+                                               <groupId>org.apache.maven.plugins</groupId>
+                                               <artifactId>maven-gpg-plugin</artifactId>
+                                       </plugin>
+                                       <plugin>
+                                               <groupId>org.sonatype.plugins</groupId>
+                                               <artifactId>nexus-staging-maven-plugin</artifactId>
+                                       </plugin>
+                               </plugins>
+                       </build>
+               </profile>
        </profiles>
 
        <build>
                                        <artifactId>flatten-maven-plugin</artifactId>
                                        <version>1.2.2</version>
                                </plugin>
+                               <plugin>
+                                       <groupId>org.apache.maven.plugins</groupId>
+                                       <artifactId>maven-gpg-plugin</artifactId>
+                                       <version>1.6</version>
+                                       <executions>
+                                               <execution>
+                                                       <id>sign-artifacts</id>
+                                                       <phase>verify</phase>
+                                                       <goals>
+                                                               <goal>sign</goal>
+                                                       </goals>
+                                               </execution>
+                                       </executions>
+                               </plugin>
+                               <plugin>
+                                       <artifactId>maven-deploy-plugin</artifactId>
+                                       <version>2.8.2</version>
+                                       <executions>
+                                               <execution>
+                                                       <id>default-deploy</id>
+                                                       <phase>deploy</phase>
+                                                       <goals>
+                                                               <goal>deploy</goal>
+                                                       </goals>
+                                               </execution>
+                                       </executions>
+                                       <configuration>
+                                               <!-- Deploy at the end of a multi-module build -->
+                                               <deployAtEnd>true</deployAtEnd>
+                                       </configuration>
+                               </plugin>
+                               <plugin>
+                                       <groupId>org.sonatype.plugins</groupId>
+                                       <artifactId>nexus-staging-maven-plugin</artifactId>
+                                       <version>1.6.8</version>
+                                       <extensions>true</extensions>
+                                       <configuration>
+                                               <serverId>ossrh</serverId>
+                                               <nexusUrl>https://oss.sonatype.org/</nexusUrl>
+                                               <autoReleaseAfterClose>false</autoReleaseAfterClose>
+                                       </configuration>
+                               </plugin>
+                               <plugin>
+                                       <groupId>org.codehaus.mojo</groupId>
+                                       <artifactId>truezip-maven-plugin</artifactId>
+                                       <version>1.2</version>
+                               </plugin>
+                               <plugin>
+                                       <groupId>org.apache.maven.plugins</groupId>
+                                       <artifactId>maven-javadoc-plugin</artifactId>
+                                       <version>3.2.0</version>
+                               </plugin>
                        </plugins>
                </pluginManagement>
 
index 7607e2823e73fdda8869af4e95f7c38b03f0853e..ff4c8836d4ac2f077570588998994291d1d90567 100644 (file)
@@ -16,7 +16,6 @@
                        <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-javadoc-plugin</artifactId>
-                               <version>3.0.1</version>
                                <configuration>
                                </configuration>
                                <executions>