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 07:20:15 UTC

[jackrabbit-filevault-package-maven-plugin] 01/01: releng: enforce complete runtime classpath

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

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

commit ea06b9cb13c1dff15931733bff6ccf2a0f43c54d
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Mon Jun 27 09:20:08 2022 +0200

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

diff --git a/pom.xml b/pom.xml
index 0fc0972..82ea085 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                                            -->
             <!-- ====================================================================== -->
@@ -275,6 +329,7 @@
                 <artifactId>plexus-utils</artifactId>
                 <version>3.4.2</version>
             </dependency>
+            <!-- Maven uses/provides a different SLF4J version than defined by FileVault Parent -->
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-api</artifactId>