Maven打包生成源码包和Javadoc包

当我们开发了一个公共模块,将它deploy到Maven仓库时,最好同时提供源码包和Javadoc包,这样使用者可以在IDE中直接进入该依赖的源码查看其实现的细节。

由于生成源码包和Javadoc包是极其常见的需求,因此Maven官方提供了插件来帮助用户完成这个任务
,配置如下:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.pluginsgroupId>
            <artifactId>maven-compiler-pluginartifactId>
            <version>3.5.1version>
            <configuration>
                <source>${java.version}source>
                <target>${java.version}target>
                <testSource>${java.version}testSource>
                <testTarget>${java.version}testTarget>
            configuration>
        plugin>
        
        <plugin>
            <groupId>org.apache.maven.pluginsgroupId>
            <artifactId>maven-javadoc-pluginartifactId>
            <version>2.10.4version>
            <configuration>
                <encoding>UTF-8encoding>
                <aggregate>trueaggregate>
                <charset>UTF-8charset>
                <docencoding>UTF-8docencoding>
            configuration>
            <executions>
                <execution>
                    <id>attach-javadocsid>
                    <goals>
                        <goal>jargoal>
                    goals>
                execution>
            executions>
        plugin>
        
        <plugin>
            <groupId>org.apache.maven.pluginsgroupId>
            <artifactId>maven-source-pluginartifactId>
            <version>3.0.1version>
            <executions>
                <execution>
                    <id>attach-sourcesid>
                    <goals>
                        <goal>jargoal>
                    goals>
                execution>
            executions>
        plugin>
    plugins>
build>


在使用IDEA生成Java Doc的过程中,可能会出现IDEA控制台输出中文乱码,即使我们在maven-javadoc-plugin插件中指定字符集为UTF-8,依然是乱码,这是因为Maven的默认平台编码是GBK。

解决办法:
在IDEA中,打开File | Settings | Build, Execution, Deployment | Build Tools | Maven | Runner在VM Options中添加-Dfile.encoding=GBK,切记一定是GBK。

参考

Maven实战(九)——打包的技巧:http://www.infoq.com/cn/news/2011/06/xxb-maven-9-package

你可能感兴趣的:(Maven)