12

指的是 Java 的 SASS 实现?

在 Maven 目标分别编译包中自动编译 compass-style.org 样式表的最佳方法是什么?

我不想发布太多的自编译库,也不想通过像https://code.google.com/p/sass-javahttps://github.com/darrinholst/ )这样的过滤器来动态发布编译文件萨斯-java

除了连接需要在客户端安装 ruby​​ 和 compass 的 shellscripts / ant 脚本之外,还有其他选择吗?

SASS 和 Compass 样式表之间的详细区别是什么,经常使用“compass”时“sass-tools”有什么问题吗?=> 哪些 mvn 插件是“指南针感知”的?!

4

5 回答 5

6

我发现了这个,它不是一个特殊的 compass/sass 插件,但它可以工作

https://gist.github.com/1671207

于 2012-09-04T15:20:51.667 回答
6

我想你知道这个 Maven 插件(在SASS implementation for Java 中提到?)?:https ://github.com/Jasig/sass-maven-plugin

(我自己还没试过。)

更新:不再支持该插件。然而,这个分叉目前似乎很健康,所以它可能是一些人的选择:https ://github.com/GeoDienstenCentrum/sass-maven-plugin

于 2013-05-16T05:55:42.630 回答
2

我使用的是 nl.geodienstencentrum.maven 的 Sass Maven 插件,但它使用 Ruby 并且速度非常慢。

我现在切换到:Libsass Maven 插件

https://github.com/warmuuh/libsass-maven-plugin

这使用 C 并且我们的编译时间要少得多(8.6 秒到 -> 2 秒)

于 2017-08-11T12:46:59.637 回答
1

我尝试了几种方法来编译我的应用程序(java、Wicket、使用 Zurb Foundation Sites、具有 lib-sass 依赖的 node-sass)。说实话,所有的 maven 插件都是死路一条,尤其是当我的 scss 包含 !global 标志时。(这个标志是有基础的。)所以我们的最终解决方案是先用 npm 构建,然后使用 maven。Npm 构建到 src/main/webapp/"myDir" 目录中。我在 git 中排除了这个目录。jason 文件有如下一行:

"scripts": {
    ....
    "build-css": "node node_modules/node-sass/bin/node-sass --include-path myScssDir myScssDir/myScss.scss --output  src/main/webapp/myDir/css",
    ....
}

然后用 maven 构建,它会将构建的 css 移动到我的战争中。为了获得一些帮助(创建不存在的“myDir”目录),我使用了 mkdirp。在我的杰森中有:

"scripts": {
    "create-dirs": "mkdirp src/main/webapp/myDir/",
    ....
}

所以我运行“npm i”将我所有的依赖项本地安装到节点模块目录中。这是被忽略的。

然后我运行“npm run create-dirs”来创建必要的 myDir。这也被忽略了。

然后我运行“npm run build-css”将我的 css-s 和 js-s 编译到 myDir 中。

最后我做了一个Maven构建。

使用 hudson/jenkins 构建,您可以轻松地在一项工作中完成这些工作。

我能想到的一项改进是在 maven 构建期间通过 ant 运行 npm。当我有一个概念证明时,我会回复你。

//一个额外的提示:如果你是在企业环境和 Windows7 下开发,你可能需要为 npm build 的符号链接添加权限。如果您在 npm 构建中发现错误,值得一试:https ://superuser.com/questions/104845/permission-to-make-symbolic-links-in-windows-7

于 2017-02-20T12:22:11.143 回答
0

由于libsass-is-deprecated,并且fork基于相同的“归档库”:https ://github.com/bit3/jsass ..bases on libsass ...

我该如何迁移?...有人可能会觉得这很有用:

  1. [choco|brew|npm] install sass
    

    来源:https ://sass-lang.com/install (我不会中这样做,但我们可以!)

  2. 使用从Spring Petclinic (site | repo )采用的“好 ole” exec-maven-plugin(以前提取 - ,最初他们使用相同的 libsass-maven-plugin):

    <profile>
      <id>css</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>3.0.0</version> 
            <executions>
              <execution>
                <!-- process-resources > genererate-resources (i.e. later)-->
                <phase>process-resources</phase>
              </execution>
            </executions>
            <configuration>
              <!-- must be in $PATH !! -->
              <executable>sass</executable>
              <!-- it is quite silent, when everything works well -->
              <useMavenLogger>true</useMavenLogger>
              <arguments>
                <!-- additional sass path(s), adjust to our suits -->
                <argument>--load-path=${project.build.directory}/webjars/META-INF/resources/webjars/bootstrap/${webjars-bootstrap.version}/scss/</argument>
                <argument>--no-source-map</argument>
                <argument>--verbose</argument>
                <argument>--trace</argument>
                <!-- for more args, see https://stackoverflow.com/a/70228043/592355 // `sass` -->
                <argument>${basedir}/src/main/scss/my.scss</argument>
                <argument>/path/to/my/dest/my.css</argument>
              </arguments>
              <!-- more config, when we like ... -->
            </configuration>
          </plugin>
          <!-- this is not part of the answer, but unpacks us required scss: -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
              <execution>
                <id>unpack</id>
                <!-- genererate-resources < process-resources  (i.e. prior)-->
                <phase>generate-resources</phase>
                <goals>
                  <goal>unpack</goal>
                </goals>
                <configuration>
                  <artifactItems>
                    <artifactItem>
                      <groupId>org.webjars.npm</groupId>
                      <artifactId>bootstrap</artifactId>
                      <version>${webjars-bootstrap.version}</version>
                    </artifactItem>
                  </artifactItems>
                  <outputDirectory>${project.build.directory}/webjars</outputDirectory>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    
  3. 最后:

    mvn process-resources -Pcss
    

    (假设没有测试,没有清理,没有编译,“当一切正常时,它非常安静”)

于 2021-12-04T18:45:47.753 回答