gpt4 book ai didi

java - Maven插件执行顺序

转载 作者:行者123 更新时间:2023-11-30 09:06:01 26 4
gpt4 key购买 nike

情况是这样的,我想在创建 war 之前应用 yuicompressor 插件和 replacer 插件。所以我需要在我的文件被复制到目标文件夹后对其应用替换和压缩操作。问题是它的(静态文件 jsp/js 或其他网络应用程序)在 package 生命周期之前没有被复制。
使用 maven 版本 m2e 3.0.4,因此命令应该有效。

如何在 default-war 之前手动复制 webapp 内容?如果我以某种方式复制它,默认 war 会通过覆盖再次复制它吗?

我想要 maven 插件的顺序:
1.yui压缩器
2.替代品
3. war

以及 pom 的插件顺序:

<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.4.0</version>
<executions>
<execution>
<id>compressor</id>
<phase>package</phase>
<goals>
<goal>compress</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- compressing -->
</configuration>
</plugin>
<!-- js/css replacer -->
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>

<configuration>
<!-- replacing -->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>war</goal>
</goals>
</execution>
</executions>
<configuration>
<webXml>src/main/webapp/WEB-INF/web.xml</webXml>
</configuration>
</plugin>

但是我从打包阶段得到的是:

maven 日志:

[INFO] 
[INFO] --- maven-war-plugin:2.4:war (default-war) @ Scheduler ---
[INFO] Packaging webapp
[INFO] Assembling webapp [Scheduler] in [D:\Development\TFCore\target\Scheduler]
[INFO] Processing war project
[INFO] Copying webapp resources [D:\Development\TFCore\src\main\webapp]
[INFO] Webapp assembled in [24946 msecs]
[INFO] Building war: D:\Development\TFCore\target\Scheduler.war
[INFO]
[INFO] --- yuicompressor-maven-plugin:1.4.0:compress (compressor) @ Scheduler ---
[INFO] generate aggregation : D:\Development\TFCore\target\Scheduler\scripts\base.js
[INFO] base.js (4368673b)
[INFO] generate aggregation : D:\Development\TFCore\target\Scheduler\styles\base.css
[INFO] base.css (732042b)
[INFO] nb warnings: 0, nb errors: 0
[INFO]
[INFO] --- replacer:1.5.3:replace (default) @ Scheduler ---
[INFO] Replacement run on 302 files.
[INFO]
[INFO] --- maven-war-plugin:2.4:war (default) @ Scheduler ---
[INFO] Packaging webapp
[INFO] Assembling webapp [Scheduler] in [D:\Development\TFCore\target\Scheduler]
[INFO] Processing war project
[INFO] Copying webapp resources [D:\Development\TFCore\src\main\webapp]
[INFO] Webapp assembled in [22159 msecs]
[INFO] Building war: D:\Development\TFCore\target\Scheduler.war

最佳答案

您在项目中第二次定义了 maven-war-plugin,在执行中使用了不同的 id(默认值),这导致了 maven-war-plugin 执行的重复。除此之外,您还可以将 yuicompressor 绑定(bind)到 prepare-package 阶段以及 replacer-plugin。 yuicompressor 和 replacer 插件的执行顺序由 pom.xml 文件中的顺序给出。

关于java - Maven插件执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24610583/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com