java - 为什么m2eclipse从Eclipse构建路径中排除资源?

标签 java eclipse maven-2 m2eclipse

我正在尝试m2eclipse,它是Maven的Eclipse插件,并且已经注意到资源现在已从我所有项目的构建路径中排除。

我看过a question on the M2Eclipse FAQ page似乎可以解决这个确切的问题,但是答案(措辞不一)似乎是说这是有意允许进行资源过滤的,一切都应该可以正常工作。

但是,当我从Eclipse中运行应用程序时,我的应用程序无法找到我在依赖项目中的许多资源。

我已经尝试了我通常的Eclipse挥舞着橡胶鸡的 Action (清理所有项目,从-clean开始)无济于事。我确定我缺少一些简单的东西。有没有人有什么建议?

编辑:在m2控制台中进行的一些挖掘显示,其中一个项目无法正确构建。当尝试在用于构建项目之一的自定义插件中查找ClassNotFoundException时,我得到了org.apache.maven.plugin.MojoFailureException

org.apache.maven.lifecycle.LifecycleExecutionException:插件管理器中执行目标'ourdemain:ourcustomplugin:2.0:process'的内部错误:Mojo执行失败。
在org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:505)处
在org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmentForProject(DefaultLifecycleExecutor.java:265)
在org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:191)
在org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:149)
在org.apache.maven.DefaultMaven.execute_aroundBody0(DefaultMaven.java:223)
在org.apache.maven.DefaultMaven.execute_aroundBody1 $ advice(DefaultMaven.java:304)
在org.apache.maven.DefaultMaven.execute(DefaultMaven.java:1)
在org.apache.maven.embedder.MavenEmbedder.execute_aroundBody2(MavenEmbedder.java:904)
在org.apache.maven.embedder.MavenEmbedder.execute_aroundBody3 $ advice(MavenEmbedder.java:304)
在org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:1)
在org.maven.ide.eclipse.internal.project.DefaultBuildParticipant $ 1.execute(DefaultBuildParticipant.java:130)
在org.maven.ide.eclipse.internal.project.MavenProjectManagerImpl.execute(MavenProjectManagerImpl.java:986)
在org.maven.ide.eclipse.internal.project.MavenProjectFacade.execute(MavenProjectFacade.java:320)
在org.maven.ide.eclipse.internal.project.DefaultBuildParticipant.executePostBuild(DefaultBuildParticipant.java:116)
在org.maven.ide.eclipse.internal.project.DefaultBuildParticipant.build(DefaultBuildParticipant.java:80)
在org.maven.ide.eclipse.internal.builder.MavenBuilder.build(MavenBuilder.java:84)
在org.eclipse.core.internal.events.BuildManager $ 2.run(BuildManager.java:633)
在org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
在org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:170)
在org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:201)
在org.eclipse.core.internal.events.BuildManager $ 1.run(BuildManager.java:253)
在org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
在org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:256)
在org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:309)
在org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:341)
在org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:140)
在org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:238)
在org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
由以下原因引起:org.apache.maven.plugin.PluginExecutionException:Mojo执行失败。
在org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:601)
在org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:498)处
...另外27个
引起原因:org.apache.maven.plugin.MojoExecutionException:org/apache/maven/plugin/MojoFailureException
在org.codehaus.mojo.ruby.DefaultRubyMojo.execute(DefaultRubyMojo.java:98)
在org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:579)
...另外28个
引起原因:java.lang.NoClassDefFoundError:org/apache/maven/plugin/MojoFailureException
在java.lang.Class.getDeclaredConstructors0(本地方法)
在java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
在java.lang.Class.getConstructor0(Class.java:2699)
在java.lang.Class.getConstructor(Class.java:1657)
在java.lang.reflect.Proxy.newProxyInstance(Proxy.java:587)
在org.jruby.javasupport.Java.new_proxy_instance(Java.java:570)
在org.jruby.javasupport.JavaInvokerSnew_proxy_instancexx1.call处(未知源)
在org.jruby.runtime.callback.InvocationCallback.execute(InvocationCallback.java:49)
在org.jruby.internal.runtime.methods.FullFunctionCallbackMethod.internalCall(FullFunctionCallbackMethod.java:79)
在org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:79)
在org.jruby.evaluator.EvaluationState.callNode(EvaluationState.java:577)
在org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:206)
在org.jruby.evaluator.EvaluationState.setupArgs(EvaluationState.java:2182)
在org.jruby.evaluator.EvaluationState.attrAssignNode(EvaluationState.java:481)
在org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:191)
在org.jruby.evaluator.EvaluationState.blockNode(EvaluationState.java:522)
在org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:200)
在org.jruby.evaluator.EvaluationState.eval(EvaluationState.java:163)
在org.jruby.internal.runtime.methods.DefaultMethod.internalCall(DefaultMethod.java:167)
在org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:79)
在org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:125)
在org.jruby.evaluator.EvaluationState.callNode(EvaluationState.java:564)
在org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:206)
在org.jruby.evaluator.EvaluationState.callNode(EvaluationState.java:544)
在org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:206)
在org.jruby.evaluator.EvaluationState.localAsgnNode(EvaluationState.java:1230)
在org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:285)
在org.jruby.evaluator.EvaluationState.rescueNode(EvaluationState.java:1522)
在org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:349)
在org.jruby.evaluator.EvaluationState.ensureNode(EvaluationState.java:980)
在org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:246)
在org.jruby.evaluator.EvaluationState.eval(EvaluationState.java:163)
在org.jruby.internal.runtime.methods.DefaultMethod.internalCall(DefaultMethod.java:167)
在org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:79)
在org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:125)
在org.jruby.evaluator.EvaluationState.fCallNode(EvaluationState.java:1019)
在org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:252)
在org.jruby.evaluator.EvaluationState.blockNode(EvaluationState.java:522)
在org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:200)
在org.jruby.evaluator.EvaluationState.rootNode(EvaluationState.java:1622)
在org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:355)
在org.jruby.evaluator.EvaluationState.eval(EvaluationState.java:163)
在org.jruby.Ruby.eval(Ruby.java:274)
在org.codehaus.plexus.component.jruby.JRubyRuntimeInvoker.runInterpreter(JRubyRuntimeInvoker.java:392)
在org.codehaus.plexus.component.jruby.JRubyRuntimeInvoker.invoke(JRubyRuntimeInvoker.java:313)
在org.codehaus.mojo.ruby.DefaultRubyMojo.execute(DefaultRubyMojo.java:81)
...另外29个
引起原因:java.lang.ClassNotFoundException:org.apache.maven.plugin.MojoFailureException
在java.net.URLClassLoader $ 1.run(URLClassLoader.java:200)
在java.security.AccessController.doPrivileged( native 方法)
在java.net.URLClassLoader.findClass(URLClassLoader.java:188)
在java.lang.ClassLoader.loadClass(ClassLoader.java:306)
在java.lang.ClassLoader.loadClass(ClassLoader.java:251)
在java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
...另外75个

最佳答案

每当在项目上运行Maven构建器时,便会运行FAQ中提到的资源过滤。在实践中,我发现这比它值得的麻烦多,因为Maven生成器运行非常缓慢,并且仅在配置时运行(默认情况下仅在完整版本中运行),这让您抓狂了,想知道为什么您的更改不会被接收。

我倾向于修改Eclipse类路径以包含src/main/resources。对于大多数用例来说,这已经足够了。

对于简单方法不起作用的情况(例如,如果从属项目具有某些复杂的资源处理),我按照Robert的建议进行操作并关闭工作空间解析,然后将依赖项安装到本地存储库中,以便将其包含在本地存储库中。 Maven类路径容器。

关于java - 为什么m2eclipse从Eclipse构建路径中排除资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1237524/

相关文章:

java - Web View 中的字符串模式

android - 完整的 Android Eclipse 开发包

scala - 有什么简单的方法可以从 gradle 运行 jetty 8(比如使用 jettyRun)?

java - 单个RxJava如何提取对象

Java执行流程?

eclipse - 如何用Java创建Eclipse文件夹资源过滤器

android - 在 Eclipse 中找不到 Android 设备?

maven-2 - jaxws-maven-plugin 用于创建 stub 并将 wsdls 包含在目标位置

java - dependencies.dependency.version' 缺少错误

java - 使用 JavaMail API 时未收到任何响应