将frontend-maven-plugin从maven迁移到gradle

时间:2016-08-03 08:40:11

标签: java gradle

我的com.github.eirslett:frontend-maven-plugin项目中有maven

<plugin>
    <groupId>com.github.eirslett</groupId>
    <artifactId>frontend-maven-plugin</artifactId>
    <version>0.0.27</version>

    <executions>

        <execution>
            <id>install node and npm</id>
            <goals>
                <goal>install-node-and-npm</goal>
            </goals>
            <phase>generate-resources</phase>
        </execution>

        <execution>
            <id>npm install</id>
            <goals>
                <goal>npm</goal>
            </goals>
            <phase>generate-resources</phase>
            <configuration>
                <arguments>install</arguments>
            </configuration>
        </execution>

        <execution>
            <id>bower install</id>
            <goals>
                <goal>bower</goal>
            </goals>
            <phase>generate-resources</phase>

            <configuration>
                <arguments>install</arguments>
                <workingDirectory>${basedir}/src/main/webapp</workingDirectory>
            </configuration>
        </execution>

    </executions>

    <configuration>
        <nodeVersion>v4.2.4</nodeVersion>
        <npmVersion>2.7.1</npmVersion>
        <nodeDownloadRoot>https://nodejs.org/dist/</nodeDownloadRoot>
        <npmDownloadRoot>https://registry.npmjs.org/npm/-/</npmDownloadRoot>
        <workingDirectory>${basedir}/src/main/webapp</workingDirectory>

    </configuration>
</plugin>

现在我需要将其迁移到gradle,但我找不到如何操作的示例。成绩迁移工具仅转换依赖项,但不转换插件。是否有一些示例,如何在frontend-maven-plugin中使用gradle

2 个答案:

答案 0 :(得分:3)

Google为我找到了Gradle Frontend Plugin。插件描述简单地说:

  

包装常见前端工具并提供其二进制文件的任务集。

文档(截至2016年3月)描述了4个任务(installnodenpmgruntgulp)及其使用示例。

替代方案(由@Timofei提供)是Gradle Plugin for Node。描述说:

  

此插件使您可以将基于NodeJS的技术用作构建的一部分,而无需在系统上本地安装NodeJS。它将Gradle与NodeJS,Yarn,Grunt和Gulp集成在一起。

(为清晰起见编辑)

请注意,此插件的Github仓库处于活动状态,而前一个仓库在过去两年内没有任何提交。

答案 1 :(得分:2)

您可能找不到有关如何在Gradle中使用frontend-maven-plugin的示例,因为它专用于Maven。但是您可以看看Siouan Frontend Gradle plugin,它是Gradle的等效解决方案,并且允许(来自官方网站):

  

将您的前端NPM /纱线构建集成到Gradle中。

用法和配置似乎与您的Maven配置接近。在build.gradle文件中定义Node / NPM / Yarn版本,根据Gradle生命周期任务(清理/组装/检查)链接要运行的脚本,仅此而已。以下是Gradle 5.4和NPM的典型用法,摘自文档:

// build.gradle
plugins {
    id 'org.siouan.frontend' version '1.1.0'
}

frontend {
    nodeVersion = '10.15.3'
    // See 'scripts' section in your 'package.json file'
    cleanScript = 'run clean'
    assembleScript = 'run assemble'
    checkScript = 'run check'
}

您会注意到:

  • frontend-maven-plugin相反,没有声明/配置来触发Gradle的前端构建,因为它是开箱即用的。下载,安装Node / NPM / Yarn不需要声明/配置-除了版本号和构建任务。只需提供NPM / Yarn命令行即可清理/组装/检查您的前端。
  • Node的最低支持版本应为6.2.1。因此,您使用4.2.4进行的初始配置将需要迁移Node。
  • 该插件不支持Bower,并且我不认为将来会支持该插件,因为Bower现在鼓励迁移到Yarn。您可以在Bower网站上找到迁移指南。
  • 该插件不支持使用特定的NPM版本。 NPM现在与Node打包在一起,该插件使用下载的Node发行版本中嵌入的版本。

致谢