用于静态文件的Maven模块

时间:2015-12-10 19:14:13

标签: java eclipse spring maven maven-assembly-plugin

我有一个带弹簧和maven的Web应用程序。该应用程序分为maven模块。我有一个" application-web"产生战争的模块。另一个"应用耳"生成耳朵的模块。另一个" application-static"使用生成zip文件的css,js和图像。

这将是我申请的大纲:

  • 应用
    • application-web(java code)
    • 应用耳
    • application-static(css,js and images)
    • application-resources(语言属性)

我想部署" static"的eclipse使用文件。模块,而不是使用" application / src / main / webapp"中的文件;目录。我怎样才能做到这一点?有可能吗?

3 个答案:

答案 0 :(得分:1)

不要浪费你的时间来解压缩资源,一切都是开箱即用的:

  1. 资源包:始终从类路径加载,无论是爆炸(WEB-INF/classes)还是压缩(WEB-INF/lib
  2. 提供静态资源:在JAR中捆绑它们并使用Tomcat(Servlet 3.0)功能从META-INF/resources提供,请参阅here或使用Spring的内置mvc:resources元素。< / LI>

    只需在WAR POM中添加依赖关系片段即可完成。

答案 1 :(得分:0)

您可以使用maven依赖插件使用以下命令解压缩zip文件中包含的静态资源:

在您的application-web.pom

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>unpack-resources</id>
            <goals>
                <goal>unpack-dependencies</goal>
            </goals>
            <phase>generate-sources</phase>
            <configuration>
                <outputDirectory>resources</outputDirectory>
                <includeArtifactIds>application-static</includeArtifactIds>
                <includeGroupIds>your group id</includeGroupIds>
                <includes>**/*.js,**/*.css</includes>
            </configuration>
        </execution>
    </executions>
</plugin

答案 2 :(得分:0)

这项工作:

= simple_form_for [:admin, @category] do |f| 

但我有另一个问题,这个解决方案只在我执行clean包时复制静态文件。如果我使用eclipse运行application-web并在application-static中对js文件进行更改,则在执行clean package之前更改无效。对此有何解决方案?