在哪个 maven 阶段,JSP 被放在目标上?



我需要知道在maven周期的哪个阶段,jsp被放在目标目录上,以及由哪个进程放置。

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

Grunt在一个临时目录中复制jsp文件,完成它的工作,并将更新后的jsp放在target/${project.build.name}目录中。(如果我只发射咕哝声,我可以检查它的工作情况)

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

如果我只启动grunt(我做一个mvn compile,谁启动grunt任务),我可以检查我的grunt工作是否正常。但如果我执行mvn install,文件将被覆盖。

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

问题:您知道在maven周期的哪个阶段jsp被放在目标目录上吗?

顺便说一句,我的项目是来自maven工件webapp的一个webapp。

我需要知道在maven周期的哪个阶段,jsp被放在目标目录上,以及由哪个进程执行。

package阶段,Maven War插件及其war目标。

打包war后,Maven构建将根据默认的打包绑定,在package阶段默认调用war:war(Maven War插件的war)。因此,无需在POM文件中明确指定它。

Maven War插件将

  • 根据其webappDirectory配置条目的指定,在默认情况下在${project.build.directory}/${project.build.finalName}下构建完整的Web应用程序
  • 默认情况下,根据其outputDirectory配置条目的指定,将其打包为${project.build.directory}下的.war文件

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

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

您可以将修改后的.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>

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

在上面的片段中,我们对Maven War插件说,还包括target/grunt文件夹中的资源。然后,该文件夹中存在的任何.jsp文件都将被添加到构建的Web应用程序中(作为文件夹和.war文件),并覆盖原始的.jsp文件(根据您的实际需要)。

相关内容

  • 没有找到相关文章

最新更新