Ich suche nach einer SASS-Implementierung in Java (könnte mit JSP / JSF verwendet werden). Für Python habe ich CleverCSS gefunden, aber für Java gibt es nichts. Hat jemand etwas über diese Art von Tool zum Generieren von CSS gehört?
76
Antworten:
Mit ANT:
<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>
Mit MAVEN:
Maven kann auch Folgendes tun: Verwenden des Antrun-Plugins:
<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>
quelle
require 'libs/sass-[VERSION]/lib/sass'
funktionierte das für mich nicht als Verwandter, ich musste das Absolute von einer Immobilie, die ich in der Hand hatte, ablegen. So funktionierte es mitrequire $project.getProperty('project.root') + '/sass/sass-3.2.9/lib/sass'
ZUSS ist eine gute Alternative zu LESS und SASS. Es ist ähnlich wie WENIGER. Im Gegensatz zu LESS und SASS ist für die Verarbeitung der ZUSS-Dateien kein JavaScript-Interpreter erforderlich.
Haftungsausschluss: Ich bin der Entwickler von ZUSS. Ich habe es einfach entwickelt, weil ich keine ordentliche Lösung für Java finden kann.
quelle
Es gibt ein Projekt: http://code.google.com/p/jsass/ (aber es befindet sich in einem sehr frühen Stadium).
Wenn Sie an Less interessiert sind, gibt es eine gebrauchsfertige Java-Version: http://www.asual.com/lesscss/
quelle
Sie können sich auch Web Resource Optimizer 4 J (WRO4J) ansehen, das viele Dinge ermöglicht (Minimierung, Zusammenführen von Ressourcen) und Less CSS unterstützt (soweit ich weiß zur Laufzeit).
Dies bedeutet: Sie fügen Ihrer web.xml den Filter wro4j hinzu, und wenn Sie nach einem CSS fragen, werden Ihre .scss- (oder .saas-) Dateien zu Standard-CSS kompiliert.
Ich habe es noch nicht verwendet, aber es scheint fortgeschrittener zu sein als andere hier aufgeführte Produkte.
Tatsächlich habe ich Kommentare auf der Less for Java-Website ( http://www.asual.com/lesscss/ ) gelesen und WRO4J verwendet diese Bibliothek, um die "on the fly Less-Kompilierung" bereitzustellen. Ich denke, Less for Java ist der richtige Weg.
quelle
Wussten Sie, dass das Vaadin-Webframework über einen eigenen integrierten Sass-Compiler verfügt? Siehe https://vaadin.com/blog/-/blogs/state-of-sass-support-in-vaadin-7-today ...
quelle
Ich persönlich finde die SASS-Syntax zutiefst nervig. Für Ruby / Python-Leute kann es als zweite Natur kommen; für mich als Java-Typ - nicht so sehr. Ich stark bevorzugen LESS , die stattdessen auf CSS - Syntax baut mit einem neuen von der Tür. Dies hat den zusätzlichen Vorteil, dass Sie Ihre vorhandenen CSS-Dateien "wie sie sind" verwenden und bei Bedarf WENIGER Funktionen integrieren können.
Soweit ich weiß, haben weder SASS noch LESS Java-Ports. Beide basieren jedoch auf Ruby, sodass Sie sie unter JRuby installieren können . Das einzige Problem bei diesem Ansatz ist, dass JRuby nur langsam startet. Es ist jedoch keine große Sache, da Sie wahrscheinlich die Dateiüberwachung in der Entwicklung verwenden werden (und sobald sie gestartet ist, läuft sie sehr reibungslos) und es Ihnen nicht so wichtig ist, dass Ihr Build während der Bereitstellung einige Sekunden länger dauert .
Es gibt auch einige PHP-basierte Implementierungen wie LessPhp , xCSS und andere. Ich habe sie aber nicht persönlich ausprobiert.
quelle
Es scheint doch eine zu geben (wahrscheinlich eine Weile nachdem diese Frage gestellt wurde).
https://github.com/Jasig/sass-maven-plugin
quelle
<dependency><groupId>org.jruby</groupId><artifactId>jruby-complete</artifactId><version>1.6.7.1</version></dependency>
Ich würde etwas bevorzugen, das keine Abhängigkeiten hat.Was ist falsch an der Verwendung von sass2css, das mit Ruby SASS verteilt wird, da SASS in CSS konvertiert werden muss, um verwendet werden zu können?
quelle
Sie können diesen Filter ausprobieren, den ich gerade zusammengestellt habe - https://github.com/darrinholst/sass-java
quelle
Ich verwende Compass & Sass in meinem Eclipse-Projekt mit Ant.
Ich habe dieses Tutorial hier verfolgt:
http://caueguerra.com/tutorial-using-sass-in-a-java-project
Kompass erweitert Sass und ermöglicht meine anderen Extras.
http://compass-style.org/
quelle
Ich weiß, dass ich zu spät zur Party komme, aber dies ist der Ansatz, den ich gewählt habe, um SASS in einem Java-Projekt mit einem Ant-Build zu verwenden: http://workingonthecoolstuff.blogspot.com/2011/02/using-sass-in-ant -build.html Zusammenfassend kann ich sagen , dass ich den Build auf einem Computer mit Ruby und Sass installiere, sodass es so einfach war, den Befehl / die Anwendung sass mit der Aufgabe Ant "apply" mit einer Dateigruppe aufzurufen, die alle SCSS / SASS enthält Dateien.
quelle
Sassc ist eine Befehlszeilenimplementierung in C, die sich leicht zum Erstellungsprozess hinzufügen lässt. Basierend auf den Autoren würde ich sagen, dass es mit sass auf dem neuesten Stand bleiben sollte:
quelle