在 Ant build.xml 中使用 Compass 编译 SASS

2024-01-24

有谁知道如何使用 JRuby 和 Compass 模块在 build.xml 中编译 SASS (*.scss) 文件?

我可以在 sass 独立安装中使用 Sass::Exec 模块,通过以下方式从 *.scss 编译为 *.css:

<!-- Compile SCSS files copied to target folder  -->
<property name="stylesheetFolder" location="myproject/stylesheet"/>
<property name="inputFiles" value="${stylesheetFolder}/[^_]*.scss" />
<echo message="Compiling SCSS files from ${stylesheetFolder}..." />
<script language="ruby" classpath="${env.EP_LIB}/jruby/complete/${jruby-complete.build.jar}">
  <![CDATA[
           require $project.getProperty('env.EP_LIB') + '/sass/sass-3.2.9/lib/sass'
           require 'sass/exec'

           files = Dir.glob($project.getProperty('inputFiles'))
           files.each do |file|
             opts = Sass::Exec::Sass.new(["--style", "compressed", "--load-path", File.dirname(file), file, File.join(File.dirname(file), File.basename(file, ".*") + ".css")])
             opts.parse
           end
  ]]>
</script>
<echo message="Done compiling SCSS source files." />

但是,这并没有赋予我 Compass 框架的强大功能。我下载了独立的 compass gem,我想使用 Compass Ruby 模块之一来替换 Ant build.xml 中的上述代码,如下所示:

<script language="ruby" classpath="${env.EP_LIB}/jruby/complete/${jruby-complete.build.jar}">
  <![CDATA[
           require $project.getProperty('env.EP_LIB') + '/compass/compass-0.12.2/lib/compass' 
           require 'compass/exec'

           files = Dir.glob($project.getProperty('inputFiles'))
           files.each do |file| 
             opts = Compass::Exec::Compass.new(["--style", "compressed", "--load-path", File.dirname(file), file, File.join(File.dirname(file), File.basename(file, ".*") + ".css")])
             opts.parse
           end
  ]]>
</script>

有人成功做到这一点吗?


好吧,我终于通过大量的努力并使用过时的文档得到了它。这是我们所做的:

将 gem 捆绑到可执行 jar 中

  1. 下载jruby-complete-1.7.4.jar(对我来说工作版本)(来自http://jruby.org/files/downloads/1.7.4/ http://jruby.org/files/downloads/1.7.4/)
  2. C:\jruby\complete>java -jar jruby-complete-1.7.4.jar -S gem install -i ./compass compass
  3. C:\jruby\complete>jar uf jruby-complete-1.7.4.jar -C compass .
  4. C:\jruby\complete>java -jar jruby-complete-1.7.4.jar -S gem list
  5. 成功运行上面的cmd后,您的jruby-complete-1.7.4.jar将被修改。现在它应该包含捆绑的宝石(包括指南针)。这也适用于您想要在 Compass 项目中捆绑和使用的其他 gem。

编译.rb

Dir.entries(ARGV[0]).each do |lib|     
    $LOAD_PATH.unshift "#{ARGV[0]}/#{lib}/lib" 
end 

require 'rubygems' 
require 'compass' 
require 'compass/exec' 

command_line_class = Compass::Exec::SubCommandUI.new([ARGV[1], ARGV[2], "-q"]).run!

配置文件

http_path = "/"
css_dir = "."
sass_dir = "."
images_dir = "../images"
javascripts_dir = "../js"

output_style = :compressed
line_comments = false

构建.xml

    <path id="jruby.classpath">
        <fileset dir="${env.LIB}/jruby/complete">
            <include name="${jruby-complete.build.jar}"></include>  
        </fileset>
    </path>

    <java fork="true" failonerror="true" classpathref="jruby.classpath" classname="org.jruby.Main">
        <arg line="${stylesheetFolder}/compass/compile.rb ${rubyCompleteFolder}/compass/gems compile ${stylesheetFolder}"></arg>
    </java>  

以下是帮助我进行 Compass 和 Ant 集成的支持文档:

  • http://www.verious.com/tutorial/tutorial-using-compass-and-sass-in-a-java-project/ http://www.verious.com/tutorial/tutorial-using-compass-and-sass-in-a-java-project/
  • http://blog.nicksieger.com/articles/2009/01/10/jruby-1-1-6-gems-in-a-jar/ http://blog.nicksieger.com/articles/2009/01/10/jruby-1-1-6-gems-in-a-jar/

我希望这对您有帮助并节省您很多时间:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Ant build.xml 中使用 Compass 编译 SASS 的相关文章

  • 如何在 gem 的示例脚本中使用 pry-byebug ?

    我正在制作我的第一个 gem 它不是 Rails 应用程序 而是一个带有一些 AI 的 tic tac toe 库 这样我就可以与一个永远不会输的计算机对手比赛 并在可能的情况下强行获胜 现在我正在尝试调试人工智能中的攻击策略 但我似乎无法
  • Ruby 可选参数和多个参数

    我试图将方法的第一个参数设置为可选 后跟任意数量的参数 例如 def dothis value 0 args 我遇到的问题是 这似乎实际上不可能 当我打电话时dothis hey how are you good 我希望它将值设置为默认值
  • RSpec 请求规范发布一个空数组

    我目前正在 Rails 中开发 API 端点 如果我需要的数据无效 我想确保端点响应具有正确的错误状态 我需要一个 id 数组 无效值之一是空数组 Valid vendor district ids 2 4 5 6 Invalid vend
  • 有没有可以在 HTML 文档之间进行比较的 ruby​​ gem?

    事实证明 对两个不同的 html 文档进行比较是一个完全不同的问题 而不仅仅是对纯文本进行比较 例如 如果我在以下之间进行简单的 LCS 差异 Google and Google diff 结果不是 but a gt github com
  • 回形针不支持 .doc 文件

    在 Rails 4 0 2 中 我使用回形针 gem 上传文件 但它不支持 doc 文件 在文件上传字段下方 显示一条错误消息 扩展名与其内容不匹配 在模型中 检查内容类型的验证如下 validates attachment content
  • 回滚后是否应该删除迁移

    我对 ruby 和 Rails 相当陌生 刚刚开始了解迁移 我的问题是回滚后删除迁移的最佳实践或正确时间是什么 到目前为止 我读到的内容是回滚后是否删除迁移的观点问题 但是在团队中工作时删除迁移是否有任何重大影响 以及保留迁移文件相对于删除
  • 如何使用 Ruby on Rails 3 检查 HTTP 请求的“Content-Length”字段?

    我正在使用 Ruby on Rails 3 在我的视图文件中我有以下代码 为了避免服务器过载 我会在服务器接收上传文件之前检查上传文件的大小 这是因为 按下表单的提交按钮 服务器会先完整接收文件 然后再检查文件 我知道一个HTTP 请求有标
  • 在 mac os Sierra 上,卡在“设置 CocoaPods 主存储库”上

    转移到 mac os sierra 后 我完全格式化了我的 mac 现在每次运行时我都面临安装 cocoapods 的问题sudo gem install cocoapods pre一切都安装得很好 当我尝试安装 Pod 时 终端堆栈打开S
  • Python 的“zip”内置函数的 Ruby 等价物是什么?

    Ruby 是否有与 Python 内置函数等效的东西zip功能 如果不是 做同样事情的简洁方法是什么 一些背景信息 当我试图找到一种干净的方法来进行涉及两个数组的检查时 出现了这个问题 如果我有zip 我可以写这样的东西 zip a b a
  • 从 Jekyll 插件向页面添加属性

    假设我想要一个包含如下内容的页面 h1 page comment count Comment s h1 for c in page comment list div strong c title strong br c content di
  • HMC SHA1 哈希 - C# 生成与 Ruby 不同的哈希输出

    我正在尝试为我正在使用的第三方服务快速获取一个有缺陷的 Net 客户端库 原始库 可以运行 是用 Ruby 编写的 但 DotNet 的等效库会向 Ruby 库生成不同的哈希输出 Ruby加密代码如下 def self encrypt st
  • Capistrano:deploy.rb 文件重构

    我的deploy rb中有以下代码 namespace app do desc copies the configuration frile from shared config yml to config task copy config
  • ruby中如何将binary32转换为float

    我有一个以 IEEE 32 编码的 binary32 如何将 0x0040EDC2 转换为 118 625 我尝试了几种打包和解包选项 但没有成功 IEEE http en wikipedia org wiki Single precisi
  • 对范围值进行排序

    我想对表示数值范围的字符串数组进行排序 如下所示 b 0 5 100 250 5 25 50 100 250 500 25 50 使用sort我得到的方法 b sort gt 0 5 100 250 25 50 250 500 5 25 5
  • 在 Yosemite 上安装 Ruby 1.9.2 时出错

    我在 Yosemite 上使用 rvm 安装 ruby 1 9 2 时遇到错误 有人可以帮助我吗 我更新了自制程序和rvm 我正在与其他人合作处理这个项目 所以我无法升级 ruby 我在下面放置了我的输出的链接 提前致谢 Kanyons M
  • 我应该如何使用 alias_method_chain 作为构建方法?

    我正在使用 Ruby on Rails 3 2 13 我想正确使用alias method chain build option name声明 因为我收到一个奇怪的错误 那是 在我的控制器文件中我有 class Articles Comme
  • 如何检查字符串是否为有效日期

    我有一个字符串 31 02 2010 并想检查它是否是有效日期 最好的方法是什么 我需要一个方法 如果字符串是有效日期 则返回 true 如果不是 则返回 false require date begin Date parse 31 02
  • ArgumentError:Ruby 中的参数数量错误

    试图解决这个问题 class Person def initialize name name name end def greet other name puts Hi other name my name is name end end
  • Gem 在 irb 中可用,但在 Rails 控制台中不可用

    我正在尝试在我的 Rails 项目中使用 RedCloth gem 当我使用irb我可以加载宝石 require rubygems require RedCloth 它工作正常 但是当我在 Rails 控制台中尝试相同的操作时 我收到一条错
  • 如何在 Ruby 中重写 require ?

    我需要覆盖require来自 Ruby 文件 这是我的 start rb 应用程序入口点 所必需的 rubygems在此之前加载 位于 start rb 中 我尝试的所有操作都出现了堆栈溢出错误 正确的做法是什么 一般来说 如果你想修补一些

随机推荐

  • 除 1/n 总是返回 0.0 [重复]

    这个问题在这里已经有答案了 我正在尝试计算p1 1 1 1 2 1 n 但出了点问题printf给我0 000 0 include
  • R:计算两个点层之间的最短距离

    我需要计算两个点矩阵之间的最短距离 我是 R 新手 不知道如何做到这一点 这是我用来调用数据并将其转换为点的代码 library dismo laurus lt gbif Laurus nobilis locs lt subset laur
  • 由于 order by 超出了 bigquery 资源限制

    当我运行以下查询时 出现 超出资源限制 错误 如果我删除最后一行 order by 子句 它会起作用 SELECT id INTEGER position CASE WHEN fallback 0 THEN 2 ELSE 1 END AS
  • 网站目录之外的参考文件

    如何引用网站根目录之外的文件 例如我的网站位于 C dev TestSite 我正在使用 ASP NET 和 XSP Web 应用程序将使用 mod mono 部署在 Apache 上 我在 C images 中有图像 我想这样做 img
  • Unicode HTML 标题在 IE、Chrome 中显示为框

    这是我的 HTML 另请参阅http www caudillweb com test test htm http www caudillweb com test test htm h1 日历 h1 以下是我分别在 IE Chrome 和 F
  • 如何在 TensorFlow 中水平连接两个张量?

    我有 2 个形状张量 100 4 and 100 2 我想在 TensorFlow 中执行串联操作 类似于np hstack 在 NumPy 中 这样输出的形状 100 6 有 TensorFlow 函数可以做到这一点吗 您可以使用tf c
  • 如何使用vimeo高级API显示视频

    我使用 Vimeo simple API 来显示我网站上某个频道的视频 但您可能知道 它有一个限制 我想知道您能否给我一个如何使用高级 API 的示例 我已阅读文档 但我只是不知道如何使用这些方法 显然我不是 php 专家 因此 如果您能给
  • WPF 列表框按钮所选项目

    我有一个带有一些文本块和一个按钮的列表框 在按钮的代码隐藏中 它调用一个传递当前选定的列表框项目的方法 这非常有用 问题是 当我选择一个项目 然后单击另一个项目上的按钮时 它不会更新 SelectedItem 属性 有没有办法 Xaml 或
  • 如何在C++中调用所有基类的复制构造函数来复制钻石继承中的大多数派生类对象?

    考虑下面的代码 include
  • 需要图像编辑库的建议

    我正在尝试创建一个基于 WPF 的应用程序 该应用程序将允许用户编辑照片并提供以下功能 增加 减少亮度 Crop 复古外观 还有更多 我还期待提供更多奇特的功能 例如 构图 打印到 T 恤 但这些功能的优先级较低 有相关的开源库吗 P S
  • 在 C 中使用 #define 定义路径

    我想定义这样的路径 define PATH abc xyz lmn 该 PATH 是一个包含文件 foo1 foo2 foo3 foo115 的目录 如何在 open 调用中使用这个 define 来打开 foo1 foo2 foo115
  • 查询Windows显示缩放比例

    I want to query the Windows display scaling setting programmatically In this case I want it to return 125 since I config
  • 如何使用斯坦福 CoreNLP 对预标记文本进行 NER 和 POS 标记?

    我在我的应用程序中使用斯坦福大学的 CoreNLP 命名实体识别器 NER 和词性 POS 标记器 问题是我的代码预先标记了文本 然后我需要对每个标记进行 NER 和 POS 标记 但是 我只能找到如何使用命令行选项来执行此操作 而不能以编
  • 没有冲突的合并是否等于没有冲突的rebase?

    这是正确的吗git merge当且仅当相应的git rebase会在没有冲突的情况下成功吗 不 事实上有一个简单的情况 合并工作正常 但变基却不行 o A lt mainline B C C lt branch where C是一个与以下冲
  • 数据绑定错误 - 找不到访问器

    我用谷歌搜索但仍然没有找到适合我的解决方案 这是我的 xml
  • 带标志的数组

    假设我有一个布尔标志数组 它会根据条件设置为 true 或 false 假设索引 1 2 6 已设置 所有其他标志均未设置 我需要调用functionA 如果索引 2 3 5 已设置并且所有其他标志未设置 我需要调用functionB 除了
  • 如何使角度组件与窗口的实际尺寸全屏显示

    我正在使用 Angular 在我的 app component html 中我有一些像这样的组件
  • 在c语句中计算token

    以下 C 语句中的标记数 printf i d i x i i 我认为这里有 12 个令牌 但我的答案是错误的 谁能告诉我如何找到上述 C 语句中的标记 PS 我知道标记是编译器不会分解为组件元素的源程序文本 据我了解C代码解析 标记是 总
  • 在 UITableView 中取消选择行时如何从数组中删除项目

    我正在尝试从 a 中捕获选定的项目UITableView并将它们保存到一个新数组中 以下代码通过在点击行时添加项目来创建新数组 但它不会在取消选择行时删除项目 如何从列表中删除项目newFruitList当a中的一行UITableView被
  • 在 Ant build.xml 中使用 Compass 编译 SASS

    有谁知道如何使用 JRuby 和 Compass 模块在 build xml 中编译 SASS scss 文件 我可以在 sass 独立安装中使用 Sass Exec 模块 通过以下方式从 scss 编译为 css