vaadin / flow

Vaadin Flow is a Java framework binding Vaadin web components to Java. This is part of Vaadin 10+.
Apache License 2.0
616 stars 167 forks source link

flow-maven-plugin should not fail when given a directory instead of a jar as a dependency #3545

Closed SomeoneToIgnore closed 6 years ago

SomeoneToIgnore commented 6 years ago

When Eclipse has resolve workspace artifacts option turned on, it adds classes directories to the project dependencies that cause flow-maven-plugin to fail with

[ERROR] Failed to execute goal com.vaadin:flow-maven-plugin:1.0.0.alpha19:copy-production-files (default) on project webpage-frontend: Execution default of goal com.vaadin:flow-maven-plugin:1.0.0.alpha19:copy-production-files failed: Expect '/Users/artur/Documents/workspace/pro/webpage/webpage-persistence/target/classes' to be an existing file -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.vaadin:flow-maven-plugin:1.0.0.alpha19:copy-production-files (default) on project webpage-frontend: Execution default of goal com.vaadin:flow-maven-plugin:1.0.0.alpha19:copy-production-files failed: Expect '/Users/artur/Documents/workspace/pro/webpage/webpage-persistence/target/classes' to be an existing file
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
    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.MojoExecutor.executeForkedExecutions(MojoExecutor.java:352)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:197)
    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:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
    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:498)
    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.PluginExecutionException: Execution default of goal com.vaadin:flow-maven-plugin:1.0.0.alpha19:copy-production-files failed: Expect '/Users/artur/Documents/workspace/pro/webpage/webpage-persistence/target/classes' to be an existing file
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
    ... 24 more
Caused by: java.lang.IllegalArgumentException: Expect '/Users/artur/Documents/workspace/pro/webpage/webpage-persistence/target/classes' to be an existing file
    at com.vaadin.flow.plugin.common.JarContentsManager.requireFileExistence(JarContentsManager.java:117)
    at com.vaadin.flow.plugin.common.JarContentsManager.containsPath(JarContentsManager.java:55)
    at com.vaadin.flow.plugin.maven.CopyProductionFilesMojo.execute(CopyProductionFilesMojo.java:62)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    ... 25 more

We need to be able to treat that kind of dependencies normally and ignore them in the ProductionModeCopyStep

fluorumlabs commented 6 years ago

Note: Also true for IntelliJ when Resolve workspace artifacts is turned on