使用Maven从SVG图像生成图标字体

时间:2015-08-27 12:58:47

标签: java maven icons webfonts icon-fonts

我正在开发一个使用图标字体的java webapp。 我知道我可以使用IcoMoon应用程序从各个SVG文件创建一个图标字体,但我不想在每次需要添加图标时手动重新创建字体。 所以我想自动完成它,最好是作为Maven构建的一部分。有没有办法让Maven从各个SVG文件中生成图标字体?

1 个答案:

答案 0 :(得分:0)

我不确定是否有maven插件来执行该特定功能。

我建议你使用咕噜声 http://gruntjs.com/ 它运行在节点和grunt web字体插件上 https://github.com/sapegin/grunt-webfont

如果您在src / main / resources / grunt

中创建了GruntFile.js
module.exports = function(grunt) {
//Project Configuration
grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'), //Details about the package were creating 
    webfont: {
        icons: {
            src : "icons/svg/*.svg",
            dest: '../META-INF/resources/font',
            destCss:'../META-INF/resources/css',
            options: {
                font: 'myfont',
                fontFilename: 'MyFont',
                types:'eot,woff,ttf,svg',
                engine:'node',
                stylesheet:'less',
                htmlDemo:false
            }
        }
    }
});

grunt.loadNpmTasks('grunt-webfont');

grunt.registerTask('default', ['webfont']);
};

然后你可以在你的pom中运行

<plugin>
     <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.4.0</version>
            <executions>
                <execution>
                    <id>Grunt run</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>exec</goal>
                    </goals>
                    <configuration>
                        <executable>grunt</executable>
                        <workingDirectory>${basedir}/src/main/resources/grunt</workingDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>

您可能希望从maven资源中排除src / main / resources / grunt,并确保图标文件不会通过maven资源过滤,因为这会破坏它们。