Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse中的Resolve workspace artifacts选项在打开一个解析项目时生成错误_Java_Eclipse_Maven_Artifact_Hotdeploy - Fatal编程技术网

Java Eclipse中的Resolve workspace artifacts选项在打开一个解析项目时生成错误

Java Eclipse中的Resolve workspace artifacts选项在打开一个解析项目时生成错误,java,eclipse,maven,artifact,hotdeploy,Java,Eclipse,Maven,Artifact,Hotdeploy,我有一个maven项目a,有4个子模块。我有另一个maven项目B,没有任何子模块。A的4个子模块之一,参考项目B 在项目A上执行清理安装时,我收到一条错误消息: [错误]未能在project dca web上执行目标org.apache.maven.plugins:maven-war插件:2.2:war(默认war):未能复制工件的文件[be.vlanderen.dwse:dwse-doc-tools:jar:3.2.2:compile]:/Users/Fabrizio/ontwikkelin

我有一个maven项目a,有4个子模块。我有另一个maven项目B,没有任何子模块。A的4个子模块之一,参考项目B

在项目A上执行清理安装时,我收到一条错误消息:

[错误]未能在project dca web上执行目标org.apache.maven.plugins:maven-war插件:2.2:war(默认war):未能复制工件的文件[be.vlanderen.dwse:dwse-doc-tools:jar:3.2.2:compile]:/Users/Fabrizio/ontwikkeling/projecten/doc-tools/target/classes(是一个目录)

启用调试信息时:很清楚问题是什么:

[错误]未能在project dca web上执行目标org.apache.maven.plugins:maven war插件:2.2:war(默认war):未能为工件复制文件[be.vlanderen.dwse:dwse doc tools:jar:3.2.2:compile]:/Users/Fabrizio/ontwikkeling/projecten/doc tools/target/classes(是一个目录)->[Help 1] org.apache.maven.lifecycle.LifecycleExecutionException:未能在project dca web上执行目标org.apache.maven.plugins:maven war插件:2.2:war(默认war):未能复制工件的文件[be.vlanderen.dwse:dwse doc tools:jar:3.2.2:compile] 位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216) 位于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:120) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355) 位于org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155) 位于org.apache.maven.cli.MavenCli.execute(MavenCli.java:584) 位于org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216) 位于org.apache.maven.cli.MavenCli.main(MavenCli.java:160) 在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.MojoExecutionException:未能复制工件的文件[be.vlanderen.dwse:dwse doc tools:jar:3.2.2:compile] 位于org.apache.maven.plugin.war.packaging.ArtifactsPackagingTask.performPackaging(ArtifactsPackagingTask.java:131) 位于org.apache.maven.plugin.war.packaging.WarProjectPackagingTask.handleArtifacts(WarProjectPackagingTask.java:190) 位于org.apache.maven.plugin.war.packaging.WarProjectPackagingTask.performPackaging(WarProjectPackagingTask.java:109) 位于org.apache.maven.plugin.war.AbstractWarMojo.buildWebapp(AbstractWarMojo.java:472) 位于org.apache.maven.plugin.war.AbstractWarMojo.buildExplodedWebapp(AbstractWarMojo.java:404) 位于org.apache.maven.plugin.war.WarMojo.performPackaging(WarMojo.java:215) 位于org.apache.maven.plugin.war.WarMojo.execute(WarMojo.java:177) 位于org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132) 位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) ... 还有19个

原因:java.io.FileNotFoundException:/Users/Fabrizio/ontwikkeling/projecten/doc tools/target/classes(是一个目录) 在java.io.FileInputStream.open(本机方法) 位于java.io.FileInputStream。(FileInputStream.java:138) 位于org.codehaus.plexus.util.io.FileInputStreamFacade.getInputStream(FileInputStreamFacade.java:36) 位于org.codehaus.plexus.util.FileUtils.copyStreamToFile(FileUtils.java:1141) 位于org.codehaus.plexus.util.FileUtils.copyFile(FileUtils.java:1048) 位于org.apache.maven.plugin.war.packaging.AbstractWarpackaginTask.copyFile(AbstractWarpackaginTask.java:293) 位于org.apache.maven.plugin.war.packaging.AbstractWarpackaginTask$1.registered(AbstractWarpackaginTask.java:150) 位于org.apache.maven.plugin.war.util.WebappStructure.registerFile(WebappStructure.java:211) 位于org.apache.maven.plugin.war.packaging.AbstractWarpackaginTask.copyFile(AbstractWarpackaginTask.java:145) 位于org.apache.maven.plugin.war.packaging.ArtifactsPackagingTask.performPackaging(ArtifactsPackagingTask.java:106)

但是target/classes文件夹是一个目录!所以我猜maven插件的某个地方有个bug

当我关闭项目B时,没有问题。所以打开引用的项目会产生一个问题


我需要打开项目B,因为我在Tomcat中将项目A用作web应用程序。当我打开项目B并更改文件并保存它时,Eclipse会进行增量发布,因此Tomcat不需要重新部署或重新启动!这为每次文件更改节省了30秒!所以保持项目的开放性非常重要…

我找到了解决方案。显然,EclipseLuna(或任何基于EclipseLuna的ide)正在使用maven的嵌入式版本,而maven又使用maven war插件版本2.2。在我的pom中添加了2.6版之后,它解决了这个问题

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
        </plugin>
    </plugins>
</build>

org.apache.maven.plugins
maven战争插件
2.6
我找到了解决方案