【问题标题】:Serve resources in place with Maven in Eclipse在 Eclipse 中使用 Maven 就地提供资源
【发布时间】:2013-09-02 19:03:19
【问题描述】:

我有一个带有一些特殊资源文件夹的 Maven Eclipse 项目:www-build。我将它添加到 pom.xml 以让 maven 将其用于资源:

<build>
    <resources>
        <resource>
            <directory>www-build</directory>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>
...
</build>

我注意到 Maven 不会从资源文件夹中提供这些文件,而是总是首先将它们复制到目标目录。由于后者有时似乎神秘地不适用于某些人,我想知道:

是否可以让 Maven/Eclipse 直接从 www-build 提供资源,而不复制到目标?为什么会复制到目标?

【问题讨论】:

    标签: java maven


    【解决方案1】:

    你还没有说你是如何运行 webapp 的。

    如果您通过内置的 Eclipse 功能运行 webapp,则有一个 eclipse 的替代插件:webby 应该可以满足您的需求(我不使用 eclipse,所以无法确认)

    如果您通过 maven 插件运行 servlet 容器,例如 jetty-maven-plugin 或 tomcat-maven-plugin,那么这可能仅取决于您使用的插件目标......

    我一直在开发一个替代的、更“类似于网络”的 maven 插件:jszip.org 它仍处于 alpha 阶段,在过去的几个月里我没有空闲时间推进它,但我应该很快就会再次获得一些周期。

    最后,如果这些是类路径资源,技术上在其中获取更改应该涉及重新启动整个 Web 应用程序,因为容器管理器无法评估更改文件的范围/影响类路径,因此此类更改应触发上下文重新启动...如果您使用原始类路径进行上下文拆除,更新类路径然后设置替换上下文,这是最安全的...如果类路径资源被复制到启动应用程序的“工作”目录中

    【讨论】:

      【解决方案2】:

      资源是您程序的一部分,因此与您的程序打包在一起。当 Maven 完成打包时,它会将属于该包的所有内容复制到目标目录。

      如果您不需要此行为,则您的文件夹的内容可能不是定义的资源。能否将其设置为依赖项?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-03-19
        • 1970-01-01
        • 2014-10-22
        • 1970-01-01
        • 1970-01-01
        • 2022-10-20
        • 2012-02-10
        相关资源
        最近更新 更多