【问题标题】:During which maven's phase the jsp are put on the target?在哪个maven阶段将jsp放在目标上?
【发布时间】:2016-04-03 00:45:27
【问题描述】:

我需要知道jsp是在maven周期的哪个阶段被放到目标目录的,由哪个进程来的。

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

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

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

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

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

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

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

【问题讨论】:

  • 您的包装是war ?我假设你正在使用 maven-war-plugin?
  • 我用 war 打包,但我有和没有 maven-war-plugin 的问题。

标签: java maven jsp gruntjs maven-war-plugin


【解决方案1】:

我需要知道jsp是在maven周期的哪个阶段被放到目标目录的,由哪个进程来的。

在package 阶段,Maven War Plugin 及其war 目标。

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

Maven 战争插件将

  • 构建完整的 web 应用,默认在 ${project.build.directory}/${project.build.finalName} 下,由其 webappDirectory 配置条目指定
  • 默认打包为.war文件${project.build.directory}下,由其outputDirectory配置项指定

我的问题是更新后的文件被移到同一存储库上的原始 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 插件。

在上面的 sn-p 中,我们要求 Maven War 插件也包含来自 target/grunt 文件夹的资源。然后,该文件夹中存在的任何 .jsp 文件都将添加到构建的 webapp(作为文件夹和 .war 文件)并覆盖原始的 .jsp 文件(如您实际需要的那样)。

【讨论】:

    猜你喜欢
    • 2019-01-25
    • 2015-03-07
    • 1970-01-01
    • 2017-06-08
    • 2012-06-10
    • 2020-09-02
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    相关资源
    最近更新 更多