Maven build error - Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.5.5

匿名 (未验证) 提交于 2019-12-03 01:45:01

问题:

I am trying to build project using Maven. Unfortunately I have no experience with maven so I am a bit helpless. It is most likely caused by the riak submodule. Here is the github repo with code: YCSB

My system:

Apache Maven 3.2.2 (NON-CANONICAL_2015-04-01T06:56:20_mockbuild; 2015-04-01T08:56:20+02:00) Maven home: /usr/share/maven Java version: 1.8.0_51, vendor: Oracle Corporation Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.51-4.b16.fc21.x86_64/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "4.1.5-100.fc21.x86_64", arch: "amd64", family: "unix" 

Maven stack trace:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.5.5:single (default) on project ycsb: Failed to create assembly: Artifact: com.yahoo.ycsb:riak-binding:jar:0.3.1-RC1-SNAPSHOT (included by module) does not have an artifact with a file. Please ensure the package phase is run before the assembly is generated. -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.5.5:single (default) on project ycsb: Failed to create assembly: Artifact: com.yahoo.ycsb:riak-binding:jar:0.3.1-RC1-SNAPSHOT (included by module) does not have an artifact with a file. Please ensure the package phase is run before the assembly is generated.     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)     at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:347)     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:154)     at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)     at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)     at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:497)     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)     at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)     at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to create assembly: Artifact: com.yahoo.ycsb:riak-binding:jar:0.3.1-RC1-SNAPSHOT (included by module) does not have an artifact with a file. Please ensure the package phase is run before the assembly is generated.     at org.apache.maven.plugin.assembly.mojos.AbstractAssemblyMojo.execute(AbstractAssemblyMojo.java:541)     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)     ... 19 more Caused by: org.apache.maven.plugin.assembly.archive.ArchiveCreationException: Artifact: com.yahoo.ycsb:riak-binding:jar:0.3.1-RC1-SNAPSHOT (included by module) does not have an artifact with a file. Please ensure the package phase is run before the assembly is generated.     at org.apache.maven.plugin.assembly.archive.phase.ModuleSetAssemblyPhase.addModuleArtifact(ModuleSetAssemblyPhase.java:337)     at org.apache.maven.plugin.assembly.archive.phase.ModuleSetAssemblyPhase.addModuleBinaries(ModuleSetAssemblyPhase.java:231)     at org.apache.maven.plugin.assembly.archive.phase.ModuleSetAssemblyPhase$1.accept(ModuleSetAssemblyPhase.java:140)     at org.apache.maven.plugin.assembly.model.Assemblies.forEachModuleSet(Assemblies.java:40)     at org.apache.maven.plugin.assembly.archive.phase.ModuleSetAssemblyPhase.execute(ModuleSetAssemblyPhase.java:126)     at org.apache.maven.plugin.assembly.archive.DefaultAssemblyArchiver.createArchive(DefaultAssemblyArchiver.java:178)     at org.apache.maven.plugin.assembly.mojos.AbstractAssemblyMojo.execute(AbstractAssemblyMojo.java:484)     ... 21 more [ERROR]  [ERROR]  [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException [ERROR]  [ERROR] After correcting the problems, you can resume the build with the command [ERROR]   mvn <goals> -rf :ycsb 

I have no idea what it means so I guess you are my only hope :D

EDIT: After adding plugin suggested by Subodh Joshi:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.5.5:single (default) on project binding-parent: Failed to create assembly: Error creating assembly archive jar-with-dependencies: You must set at least one file. 

EDIT2: mvn compile works fine, but mvn package fails with above error.

回答1:

You have to add maven-assembly-plugin in your pom.xml file

 <plugin>       <artifactId>maven-assembly-plugin</artifactId>       <configuration>         <archive>           <manifest>             <mainClass>com.test.MainClassName</mainClass>           </manifest>         </archive>         <descriptorRefs>           <descriptorRef>jar-with-dependencies</descriptorRef>         </descriptorRefs>       </configuration>       <executions>         <execution>           <id>make-assembly</id>            <phase>package</phase> <!-- packaging phase -->           <goals>             <goal>single</goal>           </goals>         </execution>       </executions>     </plugin> 


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!