Java 如何通过JRuby使用Compass来嵌入我的软件';?
我必须在java软件中动态“编译”compass文件。根据stackoverflow上的说明,我完成了以下步骤:Java 如何通过JRuby使用Compass来嵌入我的软件';?,java,ruby,jruby,compass-sass,Java,Ruby,Jruby,Compass Sass,我必须在java软件中动态“编译”compass文件。根据stackoverflow上的说明,我完成了以下步骤: 获取JRuby(1.7.3),配置JRuby.jar的路径和二进制文件(gem、rake…),并学习从Java启动ruby脚本 使用以下命令行将compass和Dependencies gems放入本地目录 gem install -i ./compass compass =>所以我得到了一个目录/compass/,其中包含bin、cache、doc、gems和specifica
- 获取JRuby(1.7.3),配置JRuby.jar的路径和二进制文件(gem、rake…),并学习从Java启动ruby脚本
- 使用以下命令行将compass和Dependencies gems放入本地目录
=>所以我得到了一个目录gem install -i ./compass compass
,其中包含/compass/
目录bin、cache、doc、gems和specifications
- 使用以下命令行将gems放入jar(考虑使用与gems不同的jar名称,以避免JRuby“需要”jar而不是gems)
- 在本地目录中编写一个测试脚本
,以测试我的jar。它包括:test.rb
require 'compass' Compass.add_configuration( { :project_path => '.', :sass_path => 'styles/scss', :css_path => 'styles/css' }, 'custom' # A name for the configuration, can be anything you want ) Compass.compiler.compile('test.scss', 'test.css')
- 使用JRuby和以下命令行执行此脚本:
jruby -I . -rcompass-lib.jar test.rb
- 得到这个错误
Unable to load Sass. Please install it with one of the following commands: gem install sass --pre LoadError: no such file to load -- jar:file:C:/jruby-1.7.3/lib/jruby.jar!/gems/s ass-3.2.8/lib/sass/../sass require at org/jruby/RubyKernel.java:1027 require at c:/jruby-1.7.3/lib/ruby/shared/rubygems/custom_require.rb:36 (root) at jar:file:C:/jruby-1.7.3/lib/jruby.jar!/gems/sass-3.2.8/lib/sass/ver sion.rb:5 require at org/jruby/RubyKernel.java:1027 (root) at c:/jruby-1.7.3/lib/ruby/shared/rubygems/custom_require.rb:1 require at c:/jruby-1.7.3/lib/ruby/shared/rubygems/custom_require.rb:36 require at org/jruby/RubyKernel.java:1027 (root) at jar:file:C:/jruby-1.7.3/lib/jruby.jar!/gems/sass-3.2.8/lib/sass.rb: 9 (root) at c:/jruby-1.7.3/lib/ruby/shared/rubygems/custom_require.rb:1 require at org/jruby/RubyKernel.java:1027 require at c:/jruby-1.7.3/lib/ruby/shared/rubygems/custom_require.rb:60 (root) at jar:file:C:/jruby-1.7.3/lib/jruby.jar!/gems/compass-0.12.2/lib/comp ass/dependencies.rb:6 each at org/jruby/RubyArray.java:1613 (root) at c:/jruby-1.7.3/lib/ruby/shared/rubygems/custom_require.rb:1 require at org/jruby/RubyKernel.java:1027 require at c:/jruby-1.7.3/lib/ruby/shared/rubygems/custom_require.rb:36 (root) at test.rb:1
InputStream myFile = ISRessources.getFile("C:/Path/To/My/test.rb");
new ScriptingContainer().runScriptlet(myFile, "test.rb");
但是。。。如何“加载”我的compass lib.jar
?JRuby中的-r
的等价物是什么?我已经尝试将gems包含到jruby.jar中,在java构建路径的externals jars中添加compass-lib.jar,但这两种方法都不起作用,我仍然有:
LoadError: no such file to load -- compass
require at org/jruby/RubyKernel.java:1027
(root) at test.rb:1
有什么想法吗?错误消息说: 无法加载Sass。请使用以下命令之一安装它:
gem install sass --pre
使用gem安装指南针,自动安装sass。那是不是意味着罗盘安装了“糟糕”的sass?看起来很奇怪。。。但是我会试试:)我以为你想从
.jar
加载你的宝石?那么,是否安装gem无关紧要,重要的是是否将其打包到.jar
中。当我运行gem install-I./compass compass
时,它会安装compass,但也会将sass-3.2.8安装到./compass目录中。使用pre安装sass,它将sass-3.3.0.alpha.133添加到目录中(这就是工作!)。所以我认为指南针安装失败,但可能是另一个问题?
gem install sass --pre