无法通过maven在felix控制台中安装包

Not able to install bundle in felix console through maven

我正在尝试使用 maven 将我的包安装到 felix console 中。

这是我所做的不同之处,

我创建了自己的用户(admin 除外)并将该用户放入管理员组。我还在 Apache Web 控制台安全提供程序 中添加了我的新用户。通过这个我可以访问和安装 localhost:4502/system/console/bundles 中的包。但是,如果我尝试使用 maven 进行相同的工作,它会给出以下异常。

[错误] 无法执行目标 com.day.jcr.vault:content-package-maven-plugin:0.0.20:install (install-content-package) 项目 testUser-content: Error while
 安装包。检查日志以获取详细信息。 -> [帮助 1]
org.apache.maven.lifecycle.LifecycleExecutionException: 未能执行目标 com.day.jcr.vault:content-package-maven-plugin:0.0.20:install (install-content-p
ackage) 项目 testUser-content: 安装包时出错。检查日志以获取详细信息。
        在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
        在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
        在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
        在 org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        在 org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
        在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
        在 org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
        在 org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
        在 org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
        在 org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
        在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
        在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        在 java.lang.reflect.Method.invoke(Method.java:483)
        在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        在 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
原因:org.apache.maven.plugin.MojoFailureException:安装包时出错。检查日志以获取详细信息。
        在 com.day.jcr.vault.maven.mgr.PackageInstallMojo.uploadPackage(PackageInstallMojo.java:281)
        在 com.day.jcr.vault.maven.mgr.PackageInstallMojo.execute(PackageInstallMojo.java:200)
        在 org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
        ... 还有 20 个

描述中共享的堆栈跟踪表明调用了错误的 Maven 插件 (content-package-maven-plugin) 以安装 bundle 工件。

能够安装 bundle 工件的正确 Maven 插件是 Maven Sling Plugin (maven-sling-plugin)。

为了使用 maven-sling-plugin 插件,在生成 bundle 的任何 pom.xml 的构建部分添加以下内容(工件的 packaging 标签是bundle).

<plugin>
    <groupId>org.apache.sling</groupId>
    <artifactId>maven-sling-plugin</artifactId>
    <version>2.1.8</version>
</plugin>

然后调用插件安装 bundle

$ mvn sling:install -Dsling.url=<host>:<port>/system/console

sling.url 和各种其他参数可以作为 pom.xml 的一部分进行一次配置。请检查 complete plugin documentation.