如何让 Lazybones 创建多模块 Java EE 7 Gradle 项目?

How do I get Lazybones to create Multi Modular Java EE 7 Gradle Projects?

这是我在 github 中的存储库:https://github.com/joedayz/lazybones-templates/

我根据文档使用了 processTemplates

processTemplates 'build.gradle', props
processTemplates 'gradle.properties', props
processTemplates 'src/main/java/*.java', props
processTemplates 'settings.gradle', props

我要求用户提供以下信息:

    props.project_megaproceso = ask("Define value for 'megaproceso'  [megaproceso]: ", "megaproceso", "megaproceso")
    props.project_macroproceso = ask("Define value for 'macroproceso' [macroproceso]: ", "macroproceso", "macroproceso")
    props.project_proceso = ask("Define value for 'proceso' [proceso]: ", "proceso", "proceso")

megaproceso2、macroproceso、proceso 是我模板中的目录或文件名的一部分。

如何更改解压目录和文件的名称?代码在我的 github.

Lazybones 的 post 安装脚本目前可以完全访问标准 JDK 类 和 Apache Commons IO 库,专门用于辅助文件操作。

在这种特定情况下,您可以使用 File.renameTo()FileUtils.moveFile/Directory()。例如:

def prevPath = new File(projectDir, "megaproceso2-macroproceso-proceso.ear")
prevPath.renameTo(new File(
    projectDir,
    "${props.megaproceso}-${props.macroproceso}-${props.processo}.ear"))

projectDir 变量是注入到 post-install 脚本中的几个属性之一。您可以在 Template Developers Guide.

中找到它们的列表

我认为 FileUtils.moveFile() 的主要优点是即使您跨设备移动文件,它也能正常工作,但这在这里不是必需的。另请注意,如果要使用它们,则必须从 Commons IO 显式导入 类。