[
https://issues.apache.org/jira/browse/NIFI-11217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17698075#comment-17698075
]
Kevin Doran commented on NIFI-11217:
------------------------------------
Credit to Julien G for reporting and helping us identify the issue on the
Apache NiFi Slack:
https://apachenifi.slack.com/archives/C0L9S92JY/p1676561597970849
> NiFi NAR Maven Plugin fails to build external NARs with transitive, provided
> dependencies.
> ------------------------------------------------------------------------------------------
>
> Key: NIFI-11217
> URL: https://issues.apache.org/jira/browse/NIFI-11217
> Project: Apache NiFi
> Issue Type: Bug
> Components: Tools and Build
> Affects Versions: nifi-nar-maven-plugin-1.4.0
> Reporter: Kevin Doran
> Assignee: Kevin Doran
> Priority: Major
> Fix For: nifi-nar-maven-plugin-1.5.0
>
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> It appears that the NAR maven plugin was benefiting from behavior in older
> version of the maven-dependency-tree library that would resolve artifacts in
> addition to poms when crawling dependendncies. This guaranteed that they
> would be in the local Maven repository/cache when in the Extension
> Documentation generation phase of NAR building.
> Version 1.4.0 of the plugin upgraded maven-dependency-tree to 3.2.0, which
> included this behavior change to only download poms:
> https://github.com/apache/maven-dependency-tree/commit/b330fa93b70e35c70a8afa75f0404cf47d5935d6
>
> This broke building NARs that are external from the Apache NiFi
> repository/project that inherit from (or depend on) NiFi NARs that have
> transitive dependencies marked as provided, because the Extension
> Documentation generation needs the full artifact resolved in order to create
> a working ClassLoader. Not having artifacts resolved results in error
> messages such as:
> {noformat}
> [INFO] --- nifi-nar-maven-plugin:1.4.0:nar (default-nar) @
> nifi-example-processors-nar ---
> [INFO] Copying nifi-example-processors-1.0.jar to
> /Users/kdoran/dev/code/nifi-dependency-example/nifi-inherits-processor-bundle/nifi-example-processors-nar/target/classes/META-INF/bundled-dependencies/nifi-example-processors-1.0.jar
> [INFO] Generating documentation for NiFi extensions in the NAR...
> [INFO] Found NAR dependency of
> org.apache.nifi:nifi-standard-services-api-nar:nar:1.20.0:compile
> [INFO] Found NAR dependency of
> org.apache.nifi:nifi-jetty-bundle:nar:1.20.0:compile
> [INFO] Found a dependency on version 1.20.0 of NiFi API
> [ERROR] Could not generate extensions' documentation
> org.apache.maven.plugin.MojoExecutionException: Failed to create Extension
> Documentation
> at org.apache.nifi.NarMojo.generateDocumentation (NarMojo.java:534)
> at org.apache.nifi.NarMojo.execute (NarMojo.java:505)
> at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
> (DefaultBuildPluginManager.java:137)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:210)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:156)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:148)
> at
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
> (LifecycleModuleBuilder.java:117)
> at
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
> (LifecycleModuleBuilder.java:81)
> at
> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
> (SingleThreadedBuilder.java:56)
> at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
> (LifecycleStarter.java:128)
> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
> at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
> at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
> at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
> at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:62)
> at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke (Method.java:566)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
> (Launcher.java:282)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launch
> (Launcher.java:225)
> at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
> (Launcher.java:406)
> at org.codehaus.plexus.classworlds.launcher.Launcher.main
> (Launcher.java:347)
> Caused by: org.apache.maven.plugin.MojoExecutionException: Could not resolve
> local dependency org.apache.nifi:nifi-framework-api:jar:1.20.0
> at
> org.apache.nifi.extension.definition.extraction.ExtensionClassLoaderFactory.getProvidedArtifact
> (ExtensionClassLoaderFactory.java:224)
> at
> org.apache.nifi.extension.definition.extraction.ExtensionClassLoaderFactory.createProvidedEntitiesClassLoader
> (ExtensionClassLoaderFactory.java:258)
> at
> org.apache.nifi.extension.definition.extraction.ExtensionClassLoaderFactory.createClassLoader
> (ExtensionClassLoaderFactory.java:116)
> at
> org.apache.nifi.extension.definition.extraction.ExtensionClassLoaderFactory.createClassLoader
> (ExtensionClassLoaderFactory.java:122)
> at
> org.apache.nifi.extension.definition.extraction.ExtensionClassLoaderFactory.createClassLoader
> (ExtensionClassLoaderFactory.java:122)
> at
> org.apache.nifi.extension.definition.extraction.ExtensionClassLoaderFactory.createExtensionClassLoader
> (ExtensionClassLoaderFactory.java:101)
> at org.apache.nifi.NarMojo.generateDocumentation (NarMojo.java:531)
> at org.apache.nifi.NarMojo.execute (NarMojo.java:505)
> at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
> (DefaultBuildPluginManager.java:137)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:210)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:156)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:148)
> at
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
> (LifecycleModuleBuilder.java:117)
> at
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
> (LifecycleModuleBuilder.java:81)
> at
> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
> (SingleThreadedBuilder.java:56)
> at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
> (LifecycleStarter.java:128)
> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
> at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
> at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
> at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
> at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:62)
> at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke (Method.java:566)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
> (Launcher.java:282)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launch
> (Launcher.java:225)
> at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
> (Launcher.java:406)
> at org.codehaus.plexus.classworlds.launcher.Launcher.main
> (Launcher.java:347)
> {noformat}
> Specifically, our code needs to be updated so that artifacts are resolved,
> using remote repositories if necessary, which they are not in the current
> plugin implementation.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)