簡體   English   中英

如何檢查和訪問Maven工件的javadoc / source

[英]How to check and access javadoc/source for Maven Artifacts

我正在編寫一個Maven插件,需要檢查某個項目依賴項是否有javadoc和源可用...如果是,想要下載它們並將它們存檔在服務器上。

我無法找到如何檢查javadoc和源是否可用或如何訪問它們。

任何幫助,將不勝感激。

您可以通過將分類器標記添加到依賴項來引用其他工件。 分類器是存儲庫中工件名稱的附加部分,例如junit-4.5- sources .jar

因此,要直接聲明對junit源jar的依賴,可以按如下方式指定它:

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.5</version>
  <classifier>sources</classifier>
  <scope>test</scope>
</dependency>

如果要下載所有依賴項源,請使用maven-dependency-plugin的copy-dependencies目標指定分類器源。 以下示例定義了兩個執行,一個用於源,一個用於javadoc。

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-dependency-plugin</artifactId>
      <executions>
        <execution>
          <id>sources</id>
          <phase>package</phase>
          <goals>
            <goal>copy-dependencies</goal>
          </goals>
          <configuration>
            <classifier>sources</classifier>
            <failOnMissingClassifierArtifact>false</failOnMissingClassifierArtifact>
            <outputDirectory>${project.build.directory}/sources</outputDirectory>
          </configuration>
        </execution>
        <execution>
          <id>javadocs</id>
          <phase>package</phase>
          <goals>
            <goal>copy-dependencies</goal>
          </goals>
          <configuration>
            <classifier>javadoc</classifier>
            <failOnMissingClassifierArtifact>false</failOnMissingClassifierArtifact>
            <outputDirectory>${project.build.directory}/javadocs</outputDirectory>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

如果要將所有下載的工件打包成zip,可以使用maven-assembly-plugin創建項目的存檔。 下面的示例是包含sources和javadocs目錄的程序集描述符文件的內容:

<assembly>
  <id>project</id>
  <formats>
    <format>zip</format>
  </formats>
  <fileSets>
    <fileSet>
      <directory>${project.basedir}</directory>
      <useDefaultExcludes>true</useDefaultExcludes>
      <includes>
        <include>${project.build.directory}/sources</include>
        <include>${project.build.directory}/javadocs</include>
      </includes>
    </fileSet>
  </fileSets>
</assembly>

要引用程序集,請將插件配置添加到pom中。 這假定上面的內容已經放在src / main / assembly / sources.xml中(確保它是在上面的依賴配置之后定義的):

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>2.2-beta-4</version>
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
        <goal>single</goal>
      </goals>
      <configuration>
        <descriptors>
           <descriptor>src/main/assembly/sources.xml</descriptor>
        </descriptors>
      </configuration>
    </execution>
  </executions>
</plugin>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM