【问题标题】:How do I get Lazybones to create Multi Modular Java EE 7 Gradle Projects?如何让 Lazybones 创建多模块 Java EE 7 Gradle 项目?
【发布时间】:2016-03-17 22:25:21
【问题描述】:

这是我在 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。

【问题讨论】:

  • 我添加了我认为是您的问题。如果您的实际问题与此不同,请告诉我。

标签: gradle weblogic12c java-ee-7 lazybones


【解决方案1】:

Lazybones 的安装后脚本目前可以完全访问标准 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 变量是注入安装后脚本的几个属性之一。您可以在Template Developers Guide 中找到它们的列表。

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

【讨论】:

  • 确实如此。 FileUtils 是要走的路,但要小心,因为它可能在 Windows 上失败。我们必须在 Griffon 模板中使用以下代码来确保创建中间目录github.com/griffon/griffon/blob/development/templates/…
  • 非常感谢大家。我在我的lazybones.groovy 中使用了 FileUtils,我明白了。
  • @aalmiray,我使用了你的重命名功能,并且在 Windows 中完美运行
猜你喜欢
  • 2018-06-01
  • 1970-01-01
  • 2012-12-10
  • 2019-07-02
  • 1970-01-01
  • 2020-06-26
  • 1970-01-01
  • 2020-11-10
  • 1970-01-01
相关资源
最近更新 更多