天天看點

Maven打包生成源碼包和Javadoc包

當我們開發了一個公共子產品,将它deploy到Maven倉庫時,最好同時提供源碼包和Javadoc包,這樣使用者可以在IDE中直接進入該依賴的源碼檢視其實作的細節。

由于生成源碼包和Javadoc包是極其常見的需求,是以Maven官方提供了插件來幫助使用者完成這個任務 ,配置如下:

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven-compiler-plugin.version>3.5.1</maven-compiler-plugin.version>
        <maven-javadoc-plugin.version>2.10.4</maven-javadoc-plugin.version>
        <maven-source-plugin.version>3.0.1</maven-source-plugin.version>
    </properties>           
<build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven-compiler-plugin.version}</version>
          <configuration>
            <source>${java.version}</source>
            <target>${java.version}</target>
            <testSource>${java.version}</testSource>
            <testTarget>${java.version}</testTarget>
          </configuration>
        </plugin>
        <!--配置生成Javadoc包-->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${maven-javadoc-plugin.version}</version>
          <configuration>
            <encoding>UTF-8</encoding>
            <aggregate>true</aggregate>
            <charset>UTF-8</charset>
            <docencoding>UTF-8</docencoding>
          </configuration>
          <executions>
            <execution>
              <id>attach-javadocs</id>
              <goals>
                <goal>jar</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <!--配置生成源碼包-->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>${maven-source-plugin.version}</version>
          <executions>
            <execution>
              <id>attach-sources</id>
              <goals>
                <goal>jar</goal>
              </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

原文位址:

http://blog.csdn.net/top_code/article/details/53586551