Java での SASS 実装を探しています (JSP/JSF で使用できます)。Python については CleverCSS を見つけましたが、Java については何もありません。CSS を生成するためのこの種のツールについて聞いたことがある人はいますか?
12 に答える
ANTの場合:
- JRuby の完全な jar ファイルをダウンロードします ( JRuby の完全な jar ダウンロード ページ) 。
- 最新の HAML/SASS コード ( HAML/SASS tarball ) をダウンロードして展開します。「/libs/sass-[VERSION]」に入れます
- 以下を ant ビルド ファイルに追加します。
- スクリプトの [VERSION] を対応するバージョンの JRuby と SASS に置き換えます。
- Ant スクリプトを実行すると、sass または scss ファイルがコンパイルされます。
<path id="JRuby">
<fileset file="libs/jruby-complete-[VERSION].jar"/> <!-- Location of JRuby jar file -->
</path>
<target name="compileSCSS">
<echo message="Compiling scss files..." />
<property name="filesIn" value="${dir.css}/scss/**/[^_]*.scss" />
<property name="fileOutDir" value="/${dir.css}/${dir.css.build}" />
<script language="ruby" classpathref="JRuby">
<![CDATA[
require 'libs/sass-[VERSION]/lib/sass'
require 'sass/exec'
files = Dir.glob($project.getProperty('filesIn'))
Dir.mkdir($project.getProperty('fileOutDir')) unless File.exists?($project.getProperty('fileOutDir'))
files.each do
| file |
puts " [sass compiler] " + file + " -> " + $project.getProperty('fileOutDir') + "/" + File.basename(file, ".*") + ".css"
opts = Sass::Exec::Sass.new(["--load-path", File.dirname(file), file, File.join($project.getProperty('fileOutDir'), File.basename(file, ".*") + ".css")])
opts.parse
end
]]>
</script>
<echo message="Done compiling scss files!" />
</target>
MAVEN の場合:
Maven でこれを行うこともできます: antrun プラグインを使用する:
<project>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>compileAndMinify</id>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<mkdir dir="${project.build.directory}/compiled" />
<echo message="Compiling scss files..."/>
<path id="JRuby">
<fileset file="${basedir}/jars/jruby-complete-[VERSION].jar"/>
</path>
<property name="filesIn" value="${project.build.directory}/css/**/[^_]*.scss" />
<property name="fileOutDir" value="${project.build.directory}/compiled/css" />
<script language="ruby" classpathref="JRuby">
<![CDATA[
require 'libs/sass-[VERSION]/lib/sass'
require 'sass/exec'
files = Dir.glob($project.getProperty('filesIn'))
Dir.mkdir($project.getProperty('fileOutDir')) unless File.exists?($project.getProperty('fileOutDir'))
files.each do
| file |
puts " [sass compiler] " + file + " -> " + $project.getProperty('fileOutDir') + "/" + File.basename(file, ".*") + ".css"
opts = Sass::Exec::Sass.new(["--load-path", File.dirname(file), file, File.join($project.getProperty('fileOutDir'), File.basename(file, ".*") + ".css")])
opts.parse
end
]]>
</script>
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
ZUSSは、LESSおよびSASSの優れた代替手段です。LESSに似ています。LESSやSASSとは異なり、ZUSSファイルの処理にはJavaScriptインタープリターは必要ありません。
免責事項:私はZUSSの開発者です。Javaの適切なソリューションが見つからないという理由だけで開発しました。
1 つのプロジェクトがあります: http://code.google.com/p/jsass/ (ただし、非常に初期の段階にあります)。
Less に興味がある場合は、すぐに使用できる Java バージョンがあります: http://www.asual.com/lesscss/
Web Resource Optimizer 4 J (WRO4J)も参照してください。これは、多くのこと (縮小、リソースのマージ) を可能にし、Less CSS (私が知る限り実行時) をサポートします。
つまり、wro4j フィルターを web.xml に追加し、CSS を要求すると、.scss (または .saas) ファイルが標準の CSS にコンパイルされます。
まだ使用していませんが、ここにリストされている他の製品よりも高度なようです。
実際、Less for Java Web サイト ( http://www.asual.com/lesscss/ ) のコメントを読んでいて、WRO4J はこのライブラリを使用して「オンザフライの Less コンパイル」を提供しています。したがって、Less for Java が最適な方法だと思います。
Vaadin Web フレームワークには、独自のビルトイン Sass コンパイラが付属していることをご存知ですか? https://vaadin.com/blog/-/blogs/state-of-sass-support-in-vaadin-7-todayを参照してください...
私は個人的に、SASS 構文が深く、恐ろしく煩わしいと感じています。Ruby / Python クラウドにとって、それは第二の天性かもしれません。Java の私にとっては - それほど多くはありません。私は、新しいものを思いつくよりも、CSS 構文に基づいて構築されたLESSを強く好みます。これには、既存の CSS ファイルを「そのまま」使用し、必要に応じて LESS 機能を組み込むことができるという利点があります。
そうは言っても、私の知る限り、SASSもLESSもJavaポートを持っていません。ただし、どちらも ruby ベースなので、 JRubyの下にインストールできます。このアプローチの唯一の問題は、JRuby の起動が気が遠くなるほど遅いことです。ただし、開発ではファイル監視を使用する可能性が高く (起動すると非常にスムーズに実行されます)、展開中にビルドが数秒長くかかることをそれほど気にしないため、大したことではありません。 .
結局のところ、あるようです(この質問が尋ねられた後、おそらく開発されました)
私がまとめたこのフィルターを試すことができます-https://github.com/darrinholst/sass-java
SASSを使用するにはCSSに変換する必要があるとすると、Ruby SASSで配布されるsass2cssを使用することの何が問題になっていますか?
私はパーティーに遅れていることを知っていますが、これは Ant ビルドの Java プロジェクトで SASS を使用するために取ったアプローチです: http://workingonthecoolstuff.blogspot.com/2011/02/using-sass-in-ant -build.html 要約すると、Ruby と Sass がインストールされたマシンでビルドを行っているので、すべての SCSS/SASS を含むファイルセットで Ant の「適用」タスクを使用して sass コマンド/アプリケーションを呼び出すのと同じくらい簡単でした。ファイル。
Antを使用したEclipseプロジェクトでCompass&Sassを使用しています。
ここでこのチュートリアルに従いました:
http://caueguerra.com/tutorial-using-sass-in-a-Java-project
Compass は Sass を拡張し、他のエクストラを可能にします。
SasscはCのコマンドライン実装であり、ビルドプロセスに簡単に追加できるはずです。著者に基づいて、私はそれがsassで最新の状態に保たれるべきだと思います:
Sassは元々、このライブラリの共同作成者であるハンプトンカトリン(@hcatlin)によって作成されました。言語の拡張と継続的な進化はすべて、Nathan Weizenbaum(@ nex3)とChris Eppstein(@chriseppstein)による長年の作業の結果です。