我尝试了几种方法来编译我的应用程序(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”将我的所有依赖项本地安装到节点模块目录中。这是 gitignored。
然后我运行“npm run create-dirs”来创建必要的 myDir。这也被忽略了。
然后我运行“npm run build-css”将我的 css-s 和 js-s 编译到 myDir 中。
最后我做了一个 maven 构建。
使用 hudson/jenkins 构建,您可以轻松完成这些工作。
我能想到的一个改进是在 maven 构建期间通过 ant 运行 npm。当我有这方面的概念证明时,我会回复你。
//一个额外的提示:如果你是在企业环境和Windows7下开发,你可能需要为npm build的符号链接添加权限。如果你在 npm build 中发现错误,值得一试:https://superuser.com/questions/104845/permission-to-make-symbolic-links-in-windows-7