在Eclipse中使用Maven为资源提供服务

时间:2013-08-30 06:24:09

标签: java maven

我有一个带有一些特殊资源文件夹的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提供资源,而无需复制到目标?为什么要复制到目标?

2 个答案:

答案 0 :(得分:1)

您还没有说过如何运行webapp。

如果你是通过内置的Eclipse功能运行webapp,那么eclipse有一个替代插件:webby应该做你想做的事情(我不使用eclipse所以我无法确认)

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

我一直在研究一种替代的,更像“web like”的maven插件:jszip.org它仍处于alpha状态,而且我在过去的几个月中没有空闲时间将其移动,但是我应该很快再次获得一些周期。

最后,如果这些是类路径资源,技术上选择它们中的更改应该涉及重新启动整个Web应用程序,因为容器管理器无法评估更改文件的范围/影响classpath,所以这样的更改应该触发上下文重启...如果你使用原始类路径执行上下文拆除,更新类路径然后设置替换上下文,这是最安全的...如果这样做会更容易classpath资源被复制到应用程序从

启动的“工作”目录中

答案 1 :(得分:0)

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

如果您不需要此行为,则根据定义,文件夹的内容可能不是资源。你可以把它设置为依赖吗?