You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by kw...@apache.org on 2022/06/27 11:15:10 UTC

[jackrabbit-filevault-package-maven-plugin] branch master updated: releng: enforce complete runtime classpath (#80)

This is an automated email from the ASF dual-hosted git repository.

kwin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jackrabbit-filevault-package-maven-plugin.git


The following commit(s) were added to refs/heads/master by this push:
     new 27afca6  releng: enforce complete runtime classpath (#80)
27afca6 is described below

commit 27afca64815808e8c26b0f0ac95f8c960b47e250
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Mon Jun 27 13:15:05 2022 +0200

    releng: enforce complete runtime classpath (#80)
---
 pom.xml | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/pom.xml b/pom.xml
index 7f2ea23..13b090d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -125,6 +125,60 @@
                     </execution>
                 </executions>
             </plugin>
+            <!-- validate that all necessary dependencies are part of the Maven plugin classpath -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-enforcer-plugin</artifactId>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.apache.sling</groupId>
+                        <artifactId>maven-enforcer-rules</artifactId>
+                        <version>1.0.0</version>
+                    </dependency>
+                </dependencies>
+                <executions>
+                    <execution>
+                        <id>enforce-complete-plugin-classpath</id>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                            <rules>
+                                <requireProvidedDependenciesInRuntimeClasspath
+                                    implementation="org.apache.sling.maven.enforcer.RequireProvidedDependenciesInRuntimeClasspath">
+                                    <excludes>
+                                        <exclude>javax.servlet:javax.servlet-api</exclude><!-- not used in the CLI context -->
+                                        <exclude>*:txw2</exclude><!-- embedded in vault-core -->
+                                        <exclude>*:woodstox-core</exclude><!-- embedded in vault-core -->
+                                        <exclude>*:stax2-api</exclude><!-- embedded in vault-core -->
+                                        <exclude>*:maven-artifact</exclude><!-- embedded in vault-core -->
+                                        <exclude>*:h2</exclude><!-- embedded in vault-core -->
+                                        <exclude>org.apache.jackrabbit:jackrabbit-spi2dav</exclude><!-- not used in this context -->
+                                        <!-- the following artifacts are not supposed to be used in OSGi/container context -->
+                                        <exclude>org.apache.maven:maven-archiver</exclude>
+                                        <exclude>org.codehaus.plexus:plexus-archiver</exclude>
+                                        <exclude>org.apache.maven.shared:maven-common-artifact-filters</exclude>
+                                        <exclude>org.apache.maven.shared:maven-shared-utils</exclude>
+                                        <exclude>org.sonatype.plexus:plexus-build-api</exclude>
+                                        <exclude>org.apache.maven.shared:maven-filtering</exclude>
+                                        <exclude>org.codehaus.mojo:animal-sniffer-maven-plugin</exclude>
+                                        <exclude>biz.aQute.bnd:biz.aQute.bndlib</exclude>
+                                        <exclude>org.slf4j:slf4j-api</exclude> <!-- always provided by Maven distribution -->
+                                        <!-- no annotations are evaluated at run time -->
+                                        <exclude>org.jetbrains:annotations</exclude>
+                                        <exclude>org.eclipse.jdt:org.eclipse.jdt.annotation</exclude>
+                                        <exclude>org.osgi:osgi.annotation</exclude>
+                                        <exclude>org.osgi:org.osgi.annotation</exclude>
+                                        <exclude>org.osgi:org.osgi.annotation.versioning</exclude>
+                                        <exclude>org.osgi:org.osgi.service.metatype.annotations</exclude>
+                                        <exclude>org.osgi:org.osgi.service.component.annotations</exclude>
+                                    </excludes>
+                                </requireProvidedDependenciesInRuntimeClasspath>
+                            </rules>
+                        </configuration>
+                    </execution>
+                </executions>
+              </plugin>
             <!-- ====================================================================== -->
             <!-- I N S T A L L   P L U G I N                                            -->
             <!-- ====================================================================== -->
@@ -269,6 +323,7 @@
     
     <dependencyManagement>
         <dependencies>
+            <!-- Maven uses/provides a different SLF4J version than defined by FileVault Parent -->
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-api</artifactId>