一千萬個為什麽

搜索

Maven 3:為定義的工件生成Javadoc

我想在專用的docs-project中為我項目的某些工件生成javadoc。

這意味著我希望有一個名為“docs”的獨立項目。在docs/pom.xml中,我想定義應該包含在生成的javadoc中的工件。

到目前為止,我了解到我必須為我想要包含的項目生成單獨的sources.jar。但我無法弄清楚如何繼續下去。

現在我只能想象兩種方法:

  1. 獲取我要包含的工件(sources.jar),解壓縮它們並以某種方式將Javadoc插件指向源目錄。

  2. 將我感興趣的工件定義為依賴項,並使用javadoc-plugin的“dependencySourceInclude”選項。但我不確定這是否符合預期用途。

有什麽建議如何解決這個問題?

最佳答案

我找到了自己的解決方案。這有點像黑客但它對我有用。我選擇了第一個想法:

獲取我要包含的工件(sources.jar),解壓縮它們並以某種方式將javadoc插件指向源目錄。

這個解決方案有四個不同的部分,我將在後面詳細解釋:

  1. 在我想要包含的所有工件中生成sources.jars
  2. 解壓縮這些sources.jars
  3. 通過將javadoc-plugin指向解壓縮的源
  4. 來生成Javadoc
  5. 將生成的apidocs打包為zip文件

現在更詳細:

1。在我想要包含的所有工件中生成sources.jars

要生成sources.jars,您必須使用maven-sources-plugin,如下所示:


  
    
      org.apache.maven.plugins
      maven-source-plugin
      2.1.2
      
        
          bundle-sources
          package
          
            jar
          
        
      
    
  

您必須在要包含在apidocs中的每個項目/模塊/工件中執行此操作。

2。解壓縮這些sources.jars

在你的pom.xml中,你用來生成javadocs,你必須添加以下插件來解壓縮sources.jar文件。


  org.apache.maven.plugins
  maven-dependency-plugin
  
    
      unpack-artifact-sources
      generate-resources
      
        unpack
      
      
        
          
            ${project.groupId}
            <!-- your artifact here -->
            ${project.version}
            sources
            true
          
        
        ${project.build.directory}/unpack_sources
      
    
    <!-- add more unpack-executions here -->
  

您可以根據需要添加任意數量的解包執行塊。

第3。通過將javadoc-plugin指向解壓縮的源來生成Javadoc

Now the tricky part. Letting the javadoc-plugin know where to look for the source files. The imported definition is the definition. In this section we define the folder where we have unpacked the sources in step 2.


  org.apache.maven.plugins
  maven-javadoc-plugin
  2.7
  
    ${project.build.directory}/unpack_sources
  
  
    
      
        javadoc
      
      process-resources
    
  

當您調用 mvn clean install 時,您將在 target 文件夾中找到 site 文件夾。在此站點文件夾中,您將找到您的apidocs。但為了使這個構建所有閃亮的東西我們想要將apidocs組裝成一個zip存檔。

4。將生成的apidocs打包為zip文件

要組裝文檔,您必須使用 maven-assembly-plugin 和一個額外的匯編文件。 首先是你的pom中的插件定義:


  maven-assembly-plugin
  
    
      docs-assembly
      package
      
        false
        
          src/main/assembly/assemble.xml
        
      
      
        single
      
    
  

assemble.xml:

<?xml version="1.0" encoding="UTF-8"?>

  ${project.build.finalName}
  <formats>
    <format>zip
  
  false
  
    
      target/site/apidocs
      /
    
  

轉載註明原文: Maven 3:為定義的工件生成Javadoc