gpt4 book ai didi

maven - 在 Maven 构建期间构建 HTML 页面

转载 作者:行者123 更新时间:2023-12-04 18:20:20 26 4
gpt4 key购买 nike

我正在使用 Maven 构建一个 HTML webapp。我有一个用于调试的配置文件和另一个用于发布的配置文件。在调试配置文件中,我希望在 HTML 页面中使用未压缩的 Javascript,但在发布配置文件中,我连接所有 Javascript 文件,然后使用 Googles Closure 编译器压缩它们。

所以基本上我有 2 个 Javascript 文件列表,我需要写成 <script>根据选择的配置文件将标签添加到 HTML 页面中。

是否有一个 Maven 插件,我可以为不同的配置文件配置不同的列表,这些配置文件可以根据需要生成 HTML 文件?

最佳答案

经过大量调查,我确定最好的选择是编写我自己的 Maven 插件。我有一个简单的 .html 模板,其中包含有关将 CSS 和 JS 标记插入 HTML 的位置的指令:

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Fifa Social - Hello World</title>
<meta name="description" content="Hello World app for Fifa Social">

<meta name="viewport" content="width=device-width">

$cssIncludes$
$jsIncludes$

</head>
<body>
<p>Page content</p>
</body>
</html>

然后我有一个在 Maven 生命周期的“生成源”阶段运行的 Maven 插件,它采用模板并替换 $cssIncludes$$jsIncludes$带有 <script> 的适当列表和 <link>标签。 (注意:我使用 antlr stringtemplate Java 库作为插件的依赖项)。

我不能发布实际的插件,因为它是一个专有项目,但它是从 AbstractMojo 扩展的单个 Java 类
  • 它有 @parameter属性读取<configuratioon>来自 POM
  • html模板的位置
  • 输出文件的位置
  • JS文件列表
  • CSS 文件列表
  • 在执行期间
  • 从文件中读取 html 模板并将其存储为字符串
  • 创建一个 org.antlr.stringtemplate.StringTemplate来自 html 模板
  • 使用默认 org.antlr.stringtemplate.language.DefaultTemplateLexer .
  • 循环访问配置中的 JS 和 CS 文件,创建 <script><link>标签作为字符串
  • 使用 template.setAttribute将构建的字符串绑定(bind)到 $cssIncludes$ 和 $jsIncludes$
  • 将模板写入文件系统

  • 它工作得很好。我只是根据当前的 Maven 配置文件向插件发送不同的 JS 和 CSS 文件列表。

    关于maven - 在 Maven 构建期间构建 HTML 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10822667/

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