77

Java での SASS 実装を探しています (JSP/JSF で使用できます)。Python については CleverCSS を見つけましたが、Java については何もありません。CSS を生成するためのこの種のツールについて聞いたことがある人はいますか?

4

12 に答える 12

49

ANTの場合:

  1. JRuby の完全な jar ファイルをダウンロードします ( JRuby の完全な jar ダウンロード ページ) 。
  2. 最新の HAML/SASS コード ( HAML/SASS tarball ) をダウンロードして展開します。「/libs/sass-[VERSION]」に入れます
  3. 以下を ant ビルド ファイルに追加します。
  4. スクリプトの [VERSION] を対応するバージョンの JRuby と SASS に置き換えます。
  5. 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>  
于 2010-12-15T10:30:27.253 に答える
19

ZUSSは、LESSおよびSASSの優れた代替手段です。LESSに似ています。LESSやSASSとは異なり、ZUSSファイルの処理にはJavaScriptインタープリターは必要ありません。

免責事項:私はZUSSの開発者です。Javaの適切なソリューションが見つからないという理由だけで開発しました。

于 2011-11-11T10:51:43.010 に答える
14

1 つのプロジェクトがあります: http://code.google.com/p/jsass/ (ただし、非常に初期の段階にあります)。

Less に興味がある場合は、すぐに使用できる Java バージョンがあります: http://www.asual.com/lesscss/

于 2010-04-15T02:57:29.883 に答える
10

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 が最適な方法だと思います。

于 2010-07-16T09:17:54.740 に答える
7

Vaadin Web フレームワークには、独自のビルトイン Sass コンパイラが付属していることをご存知ですか? https://vaadin.com/blog/-/blogs/state-of-sass-support-in-vaadin-7-todayを参照してください...

于 2012-11-14T20:07:52.957 に答える
5

私は個人的に、SASS 構文が深く、恐ろしく煩わしいと感じています。Ruby / Python クラウドにとって、それは第二の天性かもしれません。Java の私にとっては - それほど多くはありません。私は、新しいものを思いつくよりも、CSS 構文に基づいて構築されたLESSを強く好みます。これには、既存の CSS ファイルを「そのまま」使用し、必要に応じて LESS 機能を組み込むことができるという利点があります。

そうは言っても、私の知る限り、SASSもLESSもJavaポートを持っていません。ただし、どちらも ruby​​ ベースなので、 JRubyの下にインストールできます。このアプローチの唯一の問題は、JRuby の起動が気が遠くなるほど遅いことです。ただし、開発ではファイル監視を使用する可能性が高く (起動すると非常にスムーズに実行されます)、展開中にビルドが数秒長くかかることをそれほど気にしないため、大したことではありません。 .

LessPhpxCSSなどの PHP ベースの実装もあります。ただし、個人的には試していません。

于 2009-11-17T20:53:33.217 に答える
4

結局のところ、あるようです(この質問が尋ねられた後、おそらく開発されました)

https://github.com/Jasig/sass-maven-plugin

于 2012-08-09T04:00:22.523 に答える
3

私がまとめたこのフィルターを試すことができます-https://github.com/darrinholst/sass-java

于 2011-05-13T01:16:11.733 に答える
3

SASSを使用するにはCSSに変換する必要があるとすると、Ruby SASSで配布されるsass2cssを使用することの何が問題になっていますか?

于 2009-11-19T04:28:33.533 に答える
1

私はパーティーに遅れていることを知っていますが、これは Ant ビルドの Java プロジェクトで SASS を使用するために取ったアプローチです: http://workingonthecoolstuff.blogspot.com/2011/02/using-sass-in-ant -build.html 要約すると、Ruby と Sass がインストールされたマシンでビルドを行っているので、すべての SCSS/SASS を含むファイルセットで Ant の「適用」タスクを使用して sass コマンド/アプリケーションを呼び出すのと同じくらい簡単でした。ファイル。

于 2011-05-20T17:56:19.083 に答える
1

Antを使用したEclipseプロジェクトでCompass&Sassを使用しています。

ここでこのチュートリアルに従いました:

http://caueguerra.com/tutorial-using-sass-in-a-Java-project

Compass は Sass を拡張し、他のエクストラを可能にします。

http://compass-style.org/

于 2011-09-29T22:03:57.987 に答える
0

SasscはCのコマンドライン実装であり、ビルドプロセスに簡単に追加できるはずです。著者に基づいて、私はそれがsassで最新の状態に保たれるべきだと思います:

Sassは元々、このライブラリの共同作成者であるハンプトンカトリン(@hcatlin)によって作成されました。言語の拡張と継続的な進化はすべて、Nathan Weizenbaum(@ nex3)とChris Eppstein(@chriseppstein)による長年の作業の結果です。

于 2012-08-21T11:50:17.873 に答える