java - 在哪个maven阶段将jsp放在目标上?

标签 java maven jsp gruntjs maven-war-plugin

我需要知道在maven循环的哪个阶段将jsp放在目标目录上,以及通过哪个过程。

我使用grunt-maven-plugin对我的 .jsp 文件进行转换(如果您想知道,我会生成 js 脚本的插入)。

Grunt 在临时目录中复制 jsp 文件,执行其工作并将更新后的 jsp 放在 target/${project.build.name} 目录中。 (如果我只启动 grunt,我可以检查它的工作情况)

我的问题是更新的文件被移动到同一存储库的原始 jsp 覆盖。

如果我只启动 grunt(我执行 mvn 编译,它启动 grunt 任务),我可以检查我的 grunt 工作是否正常。但如果我执行 mvn install,这些文件就会被覆盖。

我想我可以通过在移动原始jsp后启动grunt来纠正它。

问题:你知道jsp在ma​​ven周期的哪个阶段被放到目标目录中吗?

顺便说一句,我的项目是来自 Maven Artifact webapp 的 web 应用程序。

最佳答案

I need to know during which phase of the maven cycle the jsp are put on the target directory, and by which process.

Maven War Pluginpackage 阶段及其 war目标。

打包 war 后,Maven 构建将默认调用 war:war (Maven 的 war War Plugin)在package阶段,根据 default packaging bindings 。因此,无需在 POM 文件中显式指定它。

Maven War 插件将

  • 默认情况下在 ${project.build.directory}/${project.build.finalName} 下构建完整的 Web 应用程序,如其 webappDirectory 所指定的那样配置条目
  • 默认将其打包为 ${project.build.directory} 下的 .war 文件,由其 outputDirectory 指定配置条目
<小时/>

My issue is that the updated file is overwritten by the original jsp who is moved on this same repository.

在这种情况下,您会遇到文件冲突,同一目标文件夹中的相同文件(具有不同的内容)(您提到的 target/${project.build.name} 与上面默认的 War Plugin 输出目录)。

您可以将修改后的 .jsp 文件重定向到不同的目录下,例如 target/grunt,然后配置 Maven War 插件也从该目录获取资源。这些附加资源将添加到默认资源之后,并因此覆盖它们(如果发生冲突)。

例如,您可以添加以下内容来配置 POM 文件:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <webResources>
            <resource>
                <!-- this is relative to the pom.xml directory -->
                <directory>target/grunt</directory>
            </resource>
        </webResources>
    </configuration>
</plugin>

全局配置还将应用于作为上述绑定(bind)的一部分执行的默认 Maven War 插件。

在上面的代码片段中,我们要求 Maven War 插件也包含来自 target/grunt 文件夹的资源。该文件夹中存在的任何 .jsp 文件都将添加到构建的 Web 应用程序(作为文件夹和 .war 文件)并覆盖原始 .jsp > 文件(如您实际想要的)。

关于java - 在哪个maven阶段将jsp放在目标上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36380386/

相关文章:

java - Intellij 13 Ultimate 无法找到支持的文件

java - 将带有 "+"的字符串从 jsp 传递到 servlet

Java将json字段解析为Period

java - 使用 Jackson 反序列化一个属性,该属性可以是对象列表或对象

java - Spring @Async 和 java CompleteFuture 提供异步 : call bean inside asynchronous method

java - 如何在 Maven 中使用 POM 作为依赖项?

java - "Supported source version ' RELEASE_ 5' from annotation processor..."是什么意思?

java - Spring MVC默认Locale和Locale改变不起作用

jsp - 当属性名称本身是一个动态变量时如何获取bean属性的值

java - Java HTTP Client 是否处理压缩