【问题标题】:Exclude processing a folder (but copy it) with fmpp使用 fmpp 排除处理文件夹(但复制它)
【发布时间】:2019-02-01 20:08:11
【问题描述】:

我正在使用 FMPP 构建我的网站,但最近遇到了问题。当尝试构建我的项目(使用 gradle)时,它会在 PHPMailer 中读取文件。有没有办法忽略使用 FMPP 处理该文件夹但仍将其复制到我的构建目录?我知道我可以将 ignoredir.fmpp 文件添加到该文件夹​​,但它会完全忽略它而无法复制,我不能拥有它。这是我的代码的 sn-p

task build_website {
    group 'csWebsite'
    description 'Task for compiling the website implementing the fmpp templates'
    dependsOn gzipCss
    finalizedBy minifyJs
    ant.taskdef(name: 'fmpp', classname:'fmpp.tools.AntTask') {
        classpath {
            fileset(dir: 'lib', includes: '*.jar')
        }
    }
    doLast {
        ant.fmpp(sourceRoot: "src", outputRoot :"build") {
            data(expandProperties: 'yes',
            """
            base_url: $project.base_url
            google_analytics_number : $project.google_analytics_number
            mail_user : $project.mail_user
            mail_password : $project.mail_password
            mail_recipient : $project.mail_recipient
            upload_folder : $project.upload_folder
            host : $project.host
            port : $project.port
            """
            )
        }        
    }
}

【问题讨论】:

    标签: gradle ant fmpp


    【解决方案1】:

    您可以为该目录中的所有文件设置copy 处理模式,并将其他文件保留为默认处理模式,例如:modes: [ copy(/scripts/vendor/) ]。请注意该路径末尾的/;这一点很重要。另请参阅文档:http://fmpp.sourceforge.net/settings.html#processingMode

    【讨论】:

      【解决方案2】:

      其实我真的想多了这个问题,后退一步找到了一个简单的解决方案。我下面的更新代码工作正常

      task build_website {
          group 'csWebsite'
          description 'Task for compiling the website implementing the fmpp templates'
          dependsOn gzipCss
          finalizedBy minifyJs
          ant.taskdef(name: 'fmpp', classname:'fmpp.tools.AntTask') {
              classpath {
                  fileset(dir: 'lib', includes: '*.jar')
              }
          }
          doLast {
              ant.fmpp(sourceRoot: "src", outputRoot :"build", excludes: "**/vendor/**") {
                  data(expandProperties: 'yes',
                  """
                  base_url: $project.base_url
                  google_analytics_number : $project.google_analytics_number
                  mail_user : $project.mail_user
                  mail_password : $project.mail_password
                  mail_recipient : $project.mail_recipient
                  upload_folder : $project.upload_folder
                  host : $project.host
                  port : $project.port
                  """
                  )
              }  
              copy{
                  from "${projectDir}/src/scripts/vendor"
                  into "${buildDir}/scripts/vendor"
              }
          }
      }
      

      只需忽略 FMPP 处理的文件夹,然后在 FMPP 完成后发出 gradle 副本就足够简单了

      【讨论】:

        猜你喜欢
        • 2012-10-10
        • 1970-01-01
        • 1970-01-01
        • 2012-02-29
        • 1970-01-01
        • 2011-01-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多