【问题标题】:ANT to Maven Migration. Maven alternative to build.xmlANT 到 Maven 迁移。 Maven 替代 build.xml
【发布时间】:2020-05-14 06:55:43
【问题描述】:

背景

我正在开发一个名为 draw.io 的开源工具,它基于 ANT 构建系统并使用 Java servelet 来处理请求。我应该使用相同的前端文件将其迁移到 Spring Boot。我将这些文件放在静态文件夹中并尝试构建项目。我认为前端 js 文件没有得到构建(即没有被转换为 app.min.js,这是前端文件的主要入口点),在这个过程中,没有任何 js 更改反映在文件。

我认为 build.xml 中提到了这个过程,作为 ANT 特定配置的各个步骤的一部分。现在,我必须在 maven 中实现与迁移过程相同的目标。

我们如何将 build.xml 转换为 maven,或者在构建过程中实现 build.xml 中提到的任务的 maven 替代方法是什么?

这是 build.xml 的高级视图:->

我也提供了build.xml的链接here...

请给我一些指导。

【问题讨论】:

    标签: java spring-boot maven ant build.xml


    【解决方案1】:

    在迁移到maven 之前,希望您了解为什么要从ant 迁移到maven

    您应该尝试为相关的ant 任务寻找替代插件。下面的插件可能会做你想要在ant中实现的目标

    <plugin>
          <groupId>com.github.blutorange</groupId>
          <artifactId>closure-compiler-maven-plugin</artifactId>
          <version>2.16.0</version>
          <configuration>
            <!-- Base configuration for all executions (bundles) -->
            <baseSourceDir>${project.basedir}/src/main/resources</baseSourceDir>
            <baseTargetDir>${project.build.directory}/generated-resources</baseTargetDir>
          </configuration>
          <executions>
            <!-- Process all files in the "includes" directory individually-->
            <execution>
              <id>default-minify</id>
              <configuration>
                <encoding>UTF-8</encoding>
                <sourceDir>includes</sourceDir>
                <targetDir>includes</targetDir>
                <includes>**/*.js</includes>
                <skipMerge>true</skipMerge>
                <closureLanguageOut>ECMASCRIPT5</closureLanguageOut>
              </configuration>
              <goals>
                <goal>minify</goal>
              </goals>
              <phase>generate-resources</phase>
            </execution>
          </executions>
        </plugin>
    

    更多插件详情:closure-compiler-maven-plugin

    在我的antmaven 迁移过程中,我遇到了一些自定义任务,但我无法找到合适的插件。

    我使用了maven-antrun-plugin,它将现有的ant 任务保留在maven 中。

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.8</version>
        <executions>
            ...
        </executions>
    </plugin>
    

    更多关于如何使用maven antrun插件的细节:See this tutorial

    【讨论】:

    • 嗨.. 我尝试使用closure-compiler-maven-plugin 缩小文件。但是在处理一些文件之后,它会抛出一些与严格模式相关的错误,比如变量不能在严格模式下声明然后停止。我还添加了 OFFfalse 。但它仍然显示相同的错误。
    • 请详细说明收到的错误。我还要求您发布另一个问题或根据您尝试过的详细错误详细信息更新当前问题。
    【解决方案2】:

    对于 Maven,您需要一个 pom.xml。您需要在那里定义和配置所需的插件。如果您有一个用 Ant 编写的特定过程想要重用,您可以使用 Maven Antrun 插件调用它。

    通常,Maven 与 Ant 非常不同。您无需编写程序代码,而是配置在生命周期中运行的插件。

    【讨论】:

    • 我已经有一个 pom.xml,因为它是一个 spring maven 项目。图像中提到了我需要实现的概述,基本上我想在 maven 中复制 build.xml 步骤。你建议什么是首选方法? 1. 用antrun运行build.xml还是为build.xml中提到的整个构建过程编写自定义插件?如果您查看 build.xml,它是一个相当大的文件。
    • 对于诸如编译和捆绑之类的许多事情,已经有 Maven 插件。您可能需要自己编写一些其他的东西,无论是作为 Maven 插件还是使用 Ant Snippet。如果您使用 Antrun 运行整个 build.xml,那么您在技术上已经迁移到 Maven,但实际上并非如此。
    猜你喜欢
    • 2015-09-21
    • 2020-09-29
    • 2013-09-07
    • 2010-10-15
    • 2022-01-07
    • 2014-09-16
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    相关资源
    最近更新 更多