maven-javadoc-plugin 覆盖中央存储库

maven-javadoc-plugin overwrites central repository

我的 Maven Javadoc 插件和自定义 doclet 有问题。

我正在使用 maven-javadoc-plugin v2.10.1 和一个基本上是 maven jar 项目的自定义 doclet。

我还有一个 settings.xml,它将 central 存储库定义为自定义工件。

问题是每次我 运行 maven-javadoc-plugin 它试图从 https://repo.maven.apache.org/maven2 解析自定义 doclet 的依赖关系,doclet 本身从自定义工件中解析。
调试输出也很奇怪,它说 central 存储库是 https://repo.maven.apache.org/maven2snapshot 存储库是我的自定义快照工件。
它像 maven-jar-plugin 一样锁定,覆盖 settings.xml.

central 存储库

如何告诉 maven-jar-plugin 不要覆盖我的 central 存储库。

调试日志如下所示:

Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T18:29:23+01:00)
Maven home: PATH TO MAVEN
Java version: 1.8.0_51, vendor: Oracle Corporation
Java home: PATH TO JRE
Default locale: de_DE, platform encoding: UTF-8
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"
[DEBUG] Reading global settings from PATH TO MAVEN\conf\settings.xml
[DEBUG] Reading user settings from PATH TO USER\.m2\settings.xml
[DEBUG] Using local repository at PATH TO LOCAL REPOSITORY
[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for PATH TO LOCAL REPOSITORY
[DEBUG] Skipped remote request for PARENT POM AND VERSION/maven-metadata.xml, locally installed metadata up-to-date.
[DEBUG] Extension realms for project ARTIFACT AND VERSION: (none)
[DEBUG] Looking up lifecyle mappings for packaging war from ClassRealm[plexus.core, parent: null]
[DEBUG] Extension realms for project ARTITFACT AND VERSION: (none)
[DEBUG] Looking up lifecyle mappings for packaging pom from ClassRealm[plexus.core, parent: null]
[DEBUG] Extension realms for project PARENT POM AND VERSION: (none)
[DEBUG] Looking up lifecyle mappings for packaging pom from ClassRealm[plexus.core, parent: null]
[DEBUG] Extension realms for project PARENT POM AND VERSION: (none)
[DEBUG] Looking up lifecyle mappings for packaging pom from ClassRealm[plexus.core, parent: null]
[DEBUG] Extension realms for project PARENT POM AND VERSION: (none)
[DEBUG] Looking up lifecyle mappings for packaging pom from ClassRealm[plexus.core, parent: null]
[DEBUG] Resolving plugin version for org.apache.maven.plugins:maven-jar-plugin
[DEBUG] Could not find metadata org.apache.maven.plugins:maven-jar-plugin/maven-metadata.xml in local (PATH TO LOCAL REPOSITORY)
[DEBUG] Skipped remote request for org.apache.maven.plugins:maven-jar-plugin/maven-metadata.xml, locally cached metadata up-to-date.
[DEBUG] Failure to find org.apache.maven.plugins:maven-jar-plugin/maven-metadata.xml in PATH TO CUSTOM PLUGIN SNAPSHOT REPOSITORY was cached in the local repository, resolution will not be reattempted until the update interval of snapshots has elapsed or updates are forced
[DEBUG] Resolved plugin version for org.apache.maven.plugins:maven-jar-plugin to 2.6 from repository central (PATH TO CUSTOM PLUGIN RELEASE REPOSITORY, default, releases)
[DEBUG] Resolving plugin prefix javadoc from [org.apache.maven.plugins, org.codehaus.mojo]
[DEBUG] Resolved plugin prefix javadoc to org.apache.maven.plugins:maven-javadoc-plugin from POM ARTIFACT AND VERSION
[DEBUG] === REACTOR BUILD PLAN ================================================
[DEBUG] Project: ARTIFACT AND VERSION
[DEBUG] Tasks:   [javadoc:javadoc]
[DEBUG] Style:   Regular
[DEBUG] =======================================================================
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building ARTIFACT AND VERSION
[INFO] ------------------------------------------------------------------------
[DEBUG] Resolving plugin prefix javadoc from [org.apache.maven.plugins, org.codehaus.mojo]
[DEBUG] Resolved plugin prefix javadoc to org.apache.maven.plugins:maven-javadoc-plugin from POM ARTIFACT AND VERSION
[DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
[DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
[DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
[DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
[DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
[DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
[DEBUG] === PROJECT BUILD PLAN ================================================
[DEBUG] Project:       ARTIFACT AND VERSION
[DEBUG] Dependencies (collect): []
[DEBUG] Dependencies (resolve): [compile]
[DEBUG] Repositories (dependencies): [central (PATH TO CUSTOM LIBS RELEASE REPOSITORY, default, releases), snapshots (PATH TO CUSTOM LIBS SNAPSHOT REPOSITORY, default, releases+snapshots)]
[DEBUG] Repositories (plugins)     : [central (PATH TO CUSTOM PLUGIN RELEASE REPOSITORY, default, releases), snapshots (PATH TO CUSTOM PLUGIN SNAPSHOT REPOSITORY, default, releases+snapshots)]
[DEBUG] --- init fork of ARTIFACT AND VERSION for org.apache.maven.plugins:maven-javadoc-plugin:2.10.1:javadoc (default-cli) ---
[DEBUG] Dependencies (collect): []
[DEBUG] Dependencies (resolve): []
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal:          org.codehaus.mojo:build-helper-maven-plugin:1.9.1:add-source (add-source)
[DEBUG] Style:         Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <sources>
    <source>PATH TO ARTIFACT\target/generated-sources</source>
  </sources>
  <project default-value="${project}"/>
</configuration>
[DEBUG] --- exit fork of ARTIFACT AND VERSION for org.apache.maven.plugins:maven-javadoc-plugin:2.10.1:javadoc (default-cli) ---
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal:          org.apache.maven.plugins:maven-javadoc-plugin:2.10.1:javadoc (default-cli)
[DEBUG] Style:         Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <additionalparam>-Xdoclint:none </additionalparam>
  <doclet>PACKAGE AND CLASS OF CUSTOM DOCLET</doclet>
  <docletArtifact>${docletArtifact}</docletArtifact>
  <docletArtifacts>
    <docletArtifact>
      <groupId>CUSTOM DOCLET GROUP</groupId>
      <artifactId>CUSTOM DOCLET ARTIFACT</artifactId>
      <version>CUSTOM DOCLET VERSION</version>
    </docletArtifact>${docletArtifacts}</docletArtifacts>
  <docletPath>${docletPath}</docletPath>
 </configuration>
[DEBUG] =======================================================================
[INFO] 
[INFO] >>> maven-javadoc-plugin:2.10.1:javadoc (default-cli) > generate-sources @ ARTIFACT ID>>>
[INFO] 
[INFO] --- build-helper-maven-plugin:1.9.1:add-source (add-source) @ ARTIFACT ID---
[DEBUG] Created new class realm maven.api
[DEBUG] Importing foreign packages into class realm maven.api
[DEBUG] Configuring mojo 'org.codehaus.mojo:build-helper-maven-plugin:1.9.1:add-source' with basic configurator -->
[DEBUG]   (f) sources = [PATH TO ARTIFACT\target\generated-sources]
[DEBUG]   (f) project = MavenProject: ARTITFACT AND VERSION @ PATH TO ARTIFACT\pom.xml
[DEBUG] -- end configuration --
[INFO] Source directory: PATH TO ARTIFACT\target\generated-sources added.
[INFO] 
[INFO] <<< maven-javadoc-plugin:2.10.1:javadoc (default-cli) < generate-sources @ ARTIFACT ID <<<
[DEBUG] Dependency collection stats: {ConflictMarker.analyzeTime=0, ConflictMarker.markTime=15, ConflictMarker.nodeCount=148, ConflictIdSorter.graphTime=0, ConflictIdSorter.topsortTime=0, ConflictIdSorter.conflictIdCount=78, ConflictIdSorter.conflictIdCycleCount=2, ConflictResolver.totalTime=0, ConflictResolver.conflictItemCount=126, DefaultDependencyCollector.collectTime=437, DefaultDependencyCollector.transformTime=15}
[DEBUG] ARTIFACT AND VERSION
[DEBUG]    org.jvnet.jax-ws-commons.spring:jaxws-spring:jar:1.9:compile
[DEBUG]       javax.xml.ws:jaxws-api:jar:2.2.8:compile
[DEBUG]          javax.xml.bind:jaxb-api:jar:2.2.7-facets-1.0.5:compile (version managed from 2.2.4 by PARENT POM AND VERSION)
[DEBUG]          javax.xml.soap:saaj-api:jar:1.3.4:compile
[DEBUG]          org.glassfish:javax.annotation:jar:3.1.1:runtime
[DEBUG]       javax.servlet:servlet-api:jar:2.5:compile
[DEBUG]       org.springframework:spring-core:jar:4.1.6.RELEASE:compile (version managed from 3.2.3.RELEASE by PARENT POM AND VERSION)
[DEBUG]          commons-logging:commons-logging:jar:1.2:compile
[DEBUG]       org.springframework:spring-beans:jar:4.1.6.RELEASE:compile (version managed from 3.2.3.RELEASE by PARENT POM AND VERSION)
[DEBUG]       org.springframework:spring-context:jar:4.1.6.RELEASE:compile (version managed from 3.2.3.RELEASE by PARENT POM AND VERSION)
[DEBUG]          org.springframework:spring-aop:jar:4.1.6.RELEASE:compile
[DEBUG]             aopalliance:aopalliance:jar:1.0:compile
[DEBUG]          org.springframework:spring-expression:jar:4.1.6.RELEASE:compile
[DEBUG]       org.springframework:spring-web:jar:4.1.6.RELEASE:compile (version managed from 3.2.3.RELEASE by PARENT POM AND VERSION)
[DEBUG]       org.apache.xbean:xbean-spring:jar:3.14:compile
[DEBUG]       javax.jws:jsr181-api:jar:1.0-MR1:compile
[DEBUG]    com.sun.xml.ws:policy:jar:2.5:compile
[DEBUG]       javax.xml.stream:stax-api:jar:1.0-2:compile
[DEBUG]       com.sun.xml.txw2:txw2:jar:20110809:compile
[DEBUG]          relaxngDatatype:relaxngDatatype:jar:20020414:compile
[DEBUG]       com.sun.istack:istack-commons-runtime:jar:2.4:compile
[DEBUG]       org.codehaus.woodstox:woodstox-core-asl:jar:4.1.1:runtime
[DEBUG]          org.codehaus.woodstox:stax2-api:jar:3.1.1:runtime
[DEBUG]    org.glassfish.gmbal:gmbal-api-only:jar:3.2.0-b003:compile
[DEBUG]       org.glassfish.external:management-api:jar:3.0.0-b012:compile
[DEBUG]    org.springframework:spring-orm:jar:4.1.6.RELEASE:compile
[DEBUG]       org.springframework:spring-jdbc:jar:4.1.6.RELEASE:compile
[DEBUG]    org.springframework:spring-tx:jar:4.1.6.RELEASE:compile
[DEBUG]    com.sun.xml.bind:jaxb-impl:jar:2.2.6-facets-1.3.1:compile
[DEBUG]       com.sun.xml.ws:jaxws-tools:jar:2.2.6:compile
[DEBUG]          com.sun.xml.ws:jaxws-rt:jar:2.2.8:compile (version managed from 2.2.6 by PARENT POM AND VERSION)
[DEBUG]             javax.xml.soap:javax.xml.soap-api:jar:1.3.5:compile
[DEBUG]             javax.annotation:javax.annotation-api:jar:1.2-b03:compile
[DEBUG]             com.sun.xml.bind:jaxb-core:jar:2.2.7:compile
[DEBUG]             org.jvnet.mimepull:mimepull:jar:1.9.1:compile
[DEBUG]             com.sun.xml.fastinfoset:FastInfoset:jar:1.2.12:compile
[DEBUG]             org.glassfish.ha:ha-api:jar:3.1.9:compile
[DEBUG]             com.sun.xml.messaging.saaj:saaj-impl:jar:1.3.20:compile
[DEBUG]             com.sun.org.apache.xml.internal:resolver:jar:20050927:compile
[DEBUG]          com.sun.xml.bind:jaxb-xjc:jar:2.2.5:compile
[DEBUG]       net.java.loci:jsr308-all:jar:1.1.2:compile
[DEBUG]       javax.validation:validation-api:jar:1.1.0.Final:compile
[DEBUG]    oracle:ojdbc6:jar:11.2.0.4.0:provided
[DEBUG]    org.eclipse.persistence:eclipselink:jar:2.5.1:provided
[DEBUG]       org.eclipse.persistence:javax.persistence:jar:2.1.0:provided
[DEBUG]       org.eclipse.persistence:commonj.sdo:jar:2.1.1:provided
[DEBUG]    com.sun.xml.stream.buffer:streambuffer:jar:1.4:compile
[DEBUG]       org.jvnet.staxex:stax-ex:jar:1.6:compile
[DEBUG]       javax.activation:activation:jar:1.1:compile
[DEBUG]    commons-dbcp:commons-dbcp:jar:1.4:compile
[DEBUG]       commons-pool:commons-pool:jar:1.5.4:compile
[DEBUG]    org.apache.commons:commons-lang3:jar:3.3.2:compile
[DEBUG]    org.springframework:spring-test:jar:4.1.6.RELEASE:test
[DEBUG]    com.github.springtestdbunit:spring-test-dbunit:jar:1.2.1:test
[DEBUG]    org.dbunit:dbunit:jar:2.5.1:test
[DEBUG]       org.slf4j:slf4j-api:jar:1.7.12:test
[DEBUG]       commons-collections:commons-collections:jar:3.2.1:test
[DEBUG]       org.apache.poi:poi-ooxml:jar:3.11:test
[DEBUG]          org.apache.poi:poi:jar:3.11:test
[DEBUG]             commons-codec:commons-codec:jar:1.9:test
[DEBUG]          org.apache.poi:poi-ooxml-schemas:jar:3.11:test
[DEBUG]             org.apache.xmlbeans:xmlbeans:jar:2.6.0:test
[DEBUG]                stax:stax-api:jar:1.0.1:test
[DEBUG]    junit:junit:jar:4.12:test
[DEBUG]       org.hamcrest:hamcrest-core:jar:1.3:test
[DEBUG]    pl.pragmatists:JUnitParams:jar:1.0.4:test
[DEBUG]    org.mockito:mockito-all:jar:1.10.19:test
[DEBUG]    org.reflections:reflections:jar:0.9.9:compile
[DEBUG]       com.google.guava:guava:jar:15.0:compile
[DEBUG]       org.javassist:javassist:jar:3.18.2-GA:compile
[DEBUG]       com.google.code.findbugs:annotations:jar:2.0.1:compile
[DEBUG]   CUSTOM DEPENDENCY OF ARTIFACT:compile
[DEBUG]       log4j:log4j:jar:1.2.16:compile
[DEBUG]       org.aspectj:aspectjrt:jar:1.8.5:compile
[DEBUG]       org.aspectj:aspectjweaver:jar:1.8.5:compile
[DEBUG]      CUSTOM DEPENDENCY OF ARTIFACT:compile
[DEBUG]         CUSTOM DEPENDENCY OF ARTIFACT:compile
[DEBUG]          CUSTOM DEPENDENCY OF ARTIFACT:compile
[INFO] 
[INFO] --- maven-javadoc-plugin:2.10.1:javadoc (default-cli) @ ARTITFACT ID---
 [DEBUG] Configuring mojo org.apache.maven.plugins:maven-javadoc-plugin:2.10.1:javadoc from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-javadoc-plugin:2.10.1, parent: sun.misc.Launcher$AppClassLoader@4e25154f]
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-javadoc-plugin:2.10.1:javadoc' with basic configurator -->
[DEBUG]   (f) additionalparam = -Xdoclint:none
[DEBUG]   (f) doclet = CUSTOM DOCLECT
[DEBUG]   (f) docletArtifact = groupId = 'null'
artifactId = 'null'
version = 'null'
[DEBUG]   (s) groupId = GROUP OF CUSTOM DOCLET
[DEBUG]   (s) artifactId = ARTIFACT ID OF CUSTOM DOCLET
[DEBUG]   (s) version = VERSION OF CUSTOM DOCLET
[DEBUG]   (f) docletArtifacts = [groupId = 'GROUP OF CUSTOM DOCLET'
artifactId = 'ARTIFACT ID OF CUSTOM DOCLET'
version = 'VERSION OF CUSTOM DOCLET']
[DEBUG]   (f) doctitle = ARTIFACT ID AND VERSION
[DEBUG]   (f) javadocDirectory = PATH TO ARTIFACT\src\main\javadoc
[DEBUG]   (f) javadocOptionsDir = PATH TO ARTIFACT\target\javadoc-bundle-options
[DEBUG]   (f) localRepository =       id: local
      url: file:///PATH TO LOCAL REPOSITORY
   layout: default
snapshots: [enabled => true, update => always]
 releases: [enabled => true, update => always]
[DEBUG]   (f) project = MavenProject: ARTIFACT AND VERSION @ PATH TO ARTIFACT\pom.xml
[DEBUG]   (f) reactorProjects = [MavenProject: ARTIFACT AND VERSION @ PATH TO ARTIFACT\pom.xml]
[DEBUG]   (f) remoteRepositories = [      id: central
      url: PATH TO CUSTOM LIBS RELEASE REPOSITORY
   layout: default
snapshots: [enabled => false, update => daily]
 releases: [enabled => true, update => daily]
,       id: snapshots
      url: PATH TO CUSTOM LIBS SNAPSHOT REPOSITORY
   layout: default
snapshots: [enabled => true, update => daily]
 releases: [enabled => true, update => daily]
]
[DEBUG]   (s) reportOutputDirectory = PATH TO ARTIFACT\target\site\apidocs
[DEBUG]   (f) sourceDependencyCacheDir = PATH TO ARTIFACT\target\distro-javadoc-sources
[DEBUG]   (f) windowtitle = ARTIFACT AND VERSION
[DEBUG] -- end configuration --
[DEBUG] Could not find metadata CUSTOM DOCLET AND VERSION/maven-metadata.xml in local (PATH TO LOCAL REPOSITORY)
[DEBUG] Using transporter WagonTransporter with priority -1.0 for PATH TO CUSTOM LIBS RELEASE REPOSITORY
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for PATH TO CUSTOM LIBS RELEASE REPOSITORY
[INFO] Downloading: PATH TO CUSTOM LIBS RELEASE REPOSITORY/PATH TO CUSTOM DOCLET/maven-metadata.xml
[INFO] Downloaded: PATH TO CUSTOM LIBS RELEASE REPOSITORY/PATH TO CUSTOM DOCLET/maven-metadata.xml (770 B at 1.0 KB/sec)
[DEBUG] Writing tracking file PATH TO LOCAL REPOSITORY\PATH TO CUSTOM DOCLET\resolver-status.properties
[DEBUG] Using transporter WagonTransporter with priority -1.0 for PATH TO CUSTOM LIBS RELEASE REPOSITORY
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for PATH TO CUSTOM LIBS RELEASE REPOSITORY
[INFO] Downloading: PATH TO CUSTOM LIBS RELEASE REPOSITORY/PATH TO CUSTOM DOCLET.pom
[INFO] Downloaded: PATH TO CUSTOM LIBS RELEASE REPOSITORY/PATH TO CUSTOM DOCLET.pom (3 KB at 88.8 KB/sec)
[DEBUG] Writing tracking file PATH TO LOCAL REPOSITORY\PATH TO CUSTOM DOCLET\_remote.repositories
[DEBUG] Writing tracking file PATH TO LOCAL REPOSITORY\PATH TO CUSTOM DOCLET.pom.lastUpdated
[DEBUG] Could not find metadata CUSTOM DOCLET ARTIFACT AND VERSION/maven-metadata.xml in local (PATH TO LOCAL REPOSITORY)
[DEBUG] Skipped remote request for CUSTOM DOCLET ARTIFACT AND VERSION/maven-metadata.xml, already updated during this session.
[DEBUG] Using transporter WagonTransporter with priority -1.0 for PATH TO CUSTOM LIBS RELEASE REPOSITORY
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for PATH TO CUSTOM LIBS RELEASE REPOSITORY
[INFO] Downloading: PATH TO CUSTOM LIBS RELEASE REPOSITORY/PATH TO CUSTOM DOCLET.jar
[INFO] Downloaded: PATH TO CUSTOM LIBS RELEASE REPOSITORY/PATH TO CUSTOM DOCLET.jar (47 KB at 1512.5 KB/sec)
[DEBUG] Writing tracking file PATH TO LOCAL REPOSITORY\PATH TO CUSTOM DOCLET\_remote.repositories
[DEBUG] Writing tracking file PATH TO LOCAL REPOSITORY\PATH TO CUSTOM DOCLET.jar.lastUpdated
[DEBUG] CUSTOM DOCLET ARTIFACT AND VERSION (selected for null)
[DEBUG]   jdk.tools:jdk.tools:jar:1.8.0_51:system (selected for system)
[DEBUG]   org.apache.commons:commons-lang3:jar:3.3.2:compile (selected for compile)
[DEBUG]   javax.xml.bind:jaxb-api:jar:2.2.7-facets-1.0.5:compile (selected for compile)
[DEBUG]     javax.xml.bind:jaxb-api:jar:2.2.7:compile (removed - nearer found: 2.2.7-facets-1.0.5)
[DEBUG] Using transporter WagonTransporter with priority -1.0 for https://repo.maven.apache.org/maven2 <b><-- ???</b>
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for https://repo.maven.apache.org/maven2 <br><--- ???</b>
[INFO] Downloading: https://repo.maven.apache.org/maven2/com/bitplan/mediawiki-japi/0.0.4/mediawiki-japi-0.0.4.pom
[DEBUG] Writing tracking file PATH TO LOCAL REPOSITORY\com\bitplan\mediawiki-japi[=10=].0.4\mediawiki-japi-0.0.4.pom.lastUpdated
[DEBUG] Using transporter WagonTransporter with priority -1.0 for PATH TO CUSTOM LIBS SNAPSHOT REPOSITORY
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for PATH TO CUSTOM LIBS SNAPSHOT REPOSITORY
[INFO] Downloading: PATH TO CUSTOM LIBS SNAPSHOT REPOSITORY/com/bitplan/mediawiki-japi/0.0.4/mediawiki-japi-0.0.4.pom
[DEBUG] Writing tracking file PATH TO LOCAL REPOSITORY\com\bitplan\mediawiki-japi[=10=].0.4\mediawiki-japi-0.0.4.pom.lastUpdated
[DEBUG]   com.google.code.gson:gson:jar:2.3.1:compile (selected for compile)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26.242 s
[INFO] Finished at: 2016-01-28T08:29:00+01:00
[INFO] Final Memory: 22M/218M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.1:javadoc (default-cli) on project ARTIFACT ID: An error has occurred in JavaDocs report generation: Unable to resolve artifact:groupId = 'GROUP OF CUSTOM DOCLET'
[ERROR] artifactId = 'ARTIFACT OF CUSTOM DOCLET'
[ERROR] version = 'VERSION OF CUSTOM DOCLET': Unable to get dependency information for com.bitplan:mediawiki-japi:jar:0.0.4: Failed to retrieve POM for com.bitplan:mediawiki-japi:jar:0.0.4: Could not transfer artifact com.bitplan:mediawiki-japi:pom:0.0.4 from/to central (https://repo.maven.apache.org/maven2): Connect to repo.maven.apache.org:443 [repo.maven.apache.org/185.31.17.215] failed: Connection timed out: connect
[ERROR] com.bitplan:mediawiki-japi:jar:0.0.4
[ERROR] 
[ERROR] from the specified remote repositories:
[ERROR] central (https://repo.maven.apache.org/maven2, releases=true, snapshots=false),
[ERROR] snapshots (PATH TO CUSTOM LIBS SNAPSHOT REPOSITORY, releases=true, snapshots=true)
[ERROR] Path to dependency:
[ERROR] 1) CUSTOM DOCLET ARTIFACT AND VERSION
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.1:javadoc (default-cli) on project ARTIFACT ID: An error has occurred in JavaDocs report generation: Unable to resolve artifact:groupId = 'GROUP OF CUSTOM DOCLET'
artifactId = 'ARTIFACT ID OF CUSTOM DOCLET'
version = 'VERSION OF CUSTOM DOCLET'
Caused by: org.apache.maven.plugin.MojoExecutionException: An error has occurred in JavaDocs report generation: Unable to resolve artifact:groupId = 'GROUP OF CUSTOM DOCLET'
artifactId = 'ARTIFACT ID OF CUSTOM DOCLET'
version = 'VERSION OF CUSTOM DOCLET'
Caused by: org.apache.maven.reporting.MavenReportException: Unable to resolve artifact:groupId = 'GROUP OF CUSTOM DOCLET'
artifactId = 'ARTIFACT ID OF CUSTOM DOCLET'
version = 'VERSION OF CUSTOM DOCLET'
Caused by: org.apache.maven.artifact.resolver.ArtifactResolutionException: Unable to get dependency information for com.bitplan:mediawiki-japi:jar:0.0.4: Failed to retrieve POM for com.bitplan:mediawiki-japi:jar:0.0.4: Could not transfer artifact com.bitplan:mediawiki-japi:pom:0.0.4 from/to central (https://repo.maven.apache.org/maven2): Connect to repo.maven.apache.org:443 [repo.maven.apache.org/185.31.17.215] failed: Connection timed out: connect
  com.bitplan:mediawiki-japi:jar:0.0.4
from the specified remote repositories:
  central (https://repo.maven.apache.org/maven2, releases=true, snapshots=false),
  snapshots (PATH TO CUSTOM LIBS SNAPSHOT REPOSITORY, releases=true, snapshots=true)
Path to dependency: 
    1) CUSTOM DOCLET ARTIFACT AND VERSION

我必须删除一些 Stacktraces,并希望删除不必要的调试日志,因为我只有 30000 个字符。

这是带有 maven-javadoc-plugin 配置的父 POM

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>XXX</groupId>
    <artifactId>XXX</artifactId>
    <version>XXXX</version>

    <packaging>pom</packaging>

    <name>Parent POM</name>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.10.1</version>
                    <configuration>
                        <show>public</show>
                        <excludePackageNames>*.ws.jaxws.*</excludePackageNames>
                        <additionalparam>-Xdoclint:none</additionalparam>
                    </configuration>
                    <executions>
                        <execution>
                            <id>default-cli</id>
                            <goals>
                                <goal>javadoc</goal>
                            </goals>
                            <configuration>
                                <docletArtifacts>
                                    <docletArtifact>
                                        <groupId>GROUP ID OF CUSTOM DOCLET <groupId>
                                        <artifactId>ARTIFACT ID OF CUSTOM DOCLET</artifactId>
                                        <version>VERSION OF CUSTOM DOCLET</version>
                                    </docletArtifact>
                                </docletArtifacts>
                                <doclet>PACKAGE AND CLASS OF CUSTOM DOCLET</doclet>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
    <dependencyManagement>
        MULTIPLE DEPENDENCIES WITH VERSION 
    </dependencyManagement>
</project>

更新:这是我的settings.xml

<profiles>
        <profile>
            <id>artifactory</id>
            <repositories>
                <repository>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                    <id>central</id>
                    <name>libs-release</name>
                    <url>PATH TO CUSTOM REPOSITORY LIBS RELEASE</url>
                </repository>
                <repository>
                    <snapshots/>
                    <id>snapshots</id>
                    <name>libs-snapshot</name>
                    <url>PATH TO CUSTOM REPOSITORY LIBS SNAPSHOT</url>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                    <id>central</id>
                    <name>plugins-release</name>
                    <url>PATH TO CUSTOM REPOSITORY PLUGINS RELEASE</url>
                </pluginRepository>
                <pluginRepository>
                    <snapshots/>
                    <id>snapshots</id>
                    <name>plugins-snapshot</name>
                    <url>PATH TO CUSTOM REPOSITORY PLUGINS SNAPSHOT</url>
                </pluginRepository>
            </pluginRepositories>
        </profile>
        <profile>
            <id>local</id>
            <properties>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
            </properties>
        </profile>
    </profiles>
    <activeProfiles>
        <activeProfile>artifactory</activeProfile>
        <activeProfile>local</activeProfile>
    </activeProfiles>

我希望有人能帮助我解决这个问题。

问候

可能的故障排除途径:

Maven 设置(在你最新的update/edit之后,这已经被选中了)

为您的自定义 Maven 存储库提供配置的 settings.xml 文件可能仅在其 repositories 部分(用于依赖关系调解的存储库)而不是 pluginRepositories 部分指向它以及(用于 plugin/reporting 调解和插件依赖调解的存储库)。

official maven documentation 开始,pluginRepositories 应指定:

The lists of the remote repositories for discovering plugins.

如果没有这个额外的配置,Maven 将尝试解决插件对插件默认存储库的依赖性,该存储库来自 Maven super POM。查看它,插件的默认存储库实际上是您的构建指向的存储库 (https://repo.maven.apache.org/maven2):

<pluginRepositories>
    <pluginRepository>
        <id>central</id>
        <name>Central Repository</name>
        <url>http://repo.maven.apache.org/maven2</url> <!-- HERE YOU ARE!-->
        <layout>default</layout>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <releases>
            <updatePolicy>never</updatePolicy>
        </releases>
    </pluginRepository>
</pluginRepositories>

如果您想查看 Maven 构建所使用的有效设置,那么您可以 运行 以下命令并检查其输出:

mvn help:effective-pom

effective-pom 目标将作为构建输出的一部分打印整个合并的 pom 和使用的设置。从中,您应该能够看到您的构建有效地使用了哪个 pluginRepositories

注意:-Doutput 参数可能有助于将其重定向到外部文件。


Artifactory 配置

如果不是这种情况(因此,配置是连贯的并且在两个部分都指向您的自定义 Maven 存储库),您应该检查自定义存储库是否配置正确:

  • Artifactory 带有库、插件和快照的默认存储库
  • 可以将 Artifactory 配置为使用虚拟存储库,在后面聚合多个真实存储库
  • 您的自定义库可能已上传到 lib 存储库,该存储库未包含在服务插件依赖项的虚拟存储库中

根据您提供的输出片段:

[DEBUG] Repositories (dependencies): [central (PATH TO CUSTOM LIBS RELEASE REPOSITORY, default, releases), snapshots (PATH TO CUSTOM LIBS SNAPSHOT REPOSITORY, default, releases+snapshots)]
[DEBUG] Repositories (plugins)     : [central (PATH TO CUSTOM PLUGIN RELEASE REPOSITORY, default, releases), snapshots (PATH TO CUSTOM PLUGIN SNAPSHOT REPOSITORY, default, releases+snapshots)]

实际可能是这样。

这是一个常见的错误配置(我过去也遇到过这种情况)。实际上,在大多数情况下,您甚至不需要为插件依赖项使用不同的存储库,并且只有一个虚拟存储库用于已发布的库和一个虚拟存储库用于快照库,两者都提供依赖项和插件工件,这样会更容易、更清楚。所以,只区分发布和快照,而不区分依赖项和插件(或者,如果你真的想保持当前配置,你可以将 libs 存储库添加为虚拟插件存储库的一部分)。

一个简单无害的测试是:

  • 在 Artifactory 中配置一个新的虚拟仓库
  • 新的虚拟存储库将包括库和插件存储库
  • 在您的 Maven 设置中配置新的虚拟存储库(在两个存储库部分)
  • 运行 再次构建 Maven

使用插件依赖项(根据您的最新评论:bingo!,这解决了问题)

您应该添加所需的依赖项作为插件依赖项,如下所示:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>2.10.1</version>
    <configuration>
        <show>public</show>
        <excludePackageNames>*.ws.jaxws.*</excludePackageNames>
        <additionalparam>-Xdoclint:none</additionalparam>
    </configuration>
    <executions>
        <execution>
            <id>default-cli</id>
            <goals>
                <goal>javadoc</goal>
            </goals>
            <configuration>
                <docletArtifacts>
                    <docletArtifact>
                        <groupId>GROUP ID OF CUSTOM DOCLET</groupId>
                        <artifactId>ARTIFACT ID OF CUSTOM DOCLET</artifactId>
                        <version>VERSION OF CUSTOM DOCLET</version>
                    </docletArtifact>
                </docletArtifacts>
                <doclet>PACKAGE AND CLASS OF CUSTOM DOCLET</doclet>
            </configuration>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>GROUP ID OF CUSTOM DOCLET</groupId>
            <artifactId>ARTIFACT ID OF CUSTOM DOCLET</artifactId>
            <version>VERSION OF CUSTOM DOCLET</version>
        </dependency>
    </dependencies>
</plugin>

注意相关 plugin 部分底部的 dependencies 部分。插件不解决项目依赖关系,因此如果需要外部库,您需要将它们声明为插件依赖关系。

但是,Javadoc Maven 插件还提供了一个 additionalDependencies,它针对其特定范围复制了上面的(标准)功能。

capability to add optionnal dependencies to the javadoc classpath

但是,根据您的反馈,标准方法可以解决问题。

编辑(02/02/2016 9:37)
如果您还需要报告依赖项(根据您的最新评论),那么报告部分确实不会像插件那样预见插件依赖项。这是 known issue.

但是,建议采用两种解决方法:

  • 设置依赖为build [extension] (https://maven.apache.org/pom.html#Extensions) (see snippet below), although not recommended

    <build>
       <extensions>
           <extension>
               <groupId>GROUP ID OF CUSTOM DOCLET</groupId>
               <artifactId>ARTIFACT ID OF CUSTOM DOCLET</artifactId>
               <version>VERSION OF CUSTOM DOCLET</version>
           </extension>
       </extensions>
    </build>
    

    official documentation开始:

    Extensions are a list of artifacts that are to be used in this build. They will be included in the running build's classpath.

  • 设置插件的依赖性(如上文所建议的)应该同时应用于插件和报告机制,如 in this Sonatype post

    所述

    There is a way to make this happen with reports. In the example below, I removed the execution from the plugin block and added the plugin as a report. It seems that the dependency is inherited when the plugin is used in reporting.

    也记录了类似的方法 here

编辑 (03/02/2016)(在您发表最新评论后:bingo!,使用构建扩展解决了该问题)


使用 docletPath 配置元素

正在查看官方 javadoc 命令的 official documentation of the Maven Javadoc Plugin, the docletPath configuration element should provide the path to the external file (the dependency), which is aligned with the expected docletPath 选项。

查看官方文档,路径方法优于 Maven 依赖项方法。所以你的配置可以调整如下:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>2.10.1</version>
    <configuration>
        <show>public</show>
        <excludePackageNames>*.ws.jaxws.*</excludePackageNames>
        <additionalparam>-Xdoclint:none</additionalparam>
    </configuration>
    <executions>
        <execution>
            <id>default-cli</id>
            <goals>
                <goal>javadoc</goal>
            </goals>
            <configuration>
                <docletArtifacts>
                    <docletArtifact>
                        <groupId>GROUP ID OF CUSTOM DOCLET</groupId>
                        <artifactId>ARTIFACT ID OF CUSTOM DOCLET</artifactId>
                        <version>VERSION OF CUSTOM DOCLET</version>
                    </docletArtifact>
                </docletArtifacts>
                <doclet>PACKAGE AND CLASS OF CUSTOM DOCLET</doclet>
                <docletPath>path_to_jar/fileName.jar</docletPath>
            </configuration>
        </execution>
    </executions>
</plugin>

注意 docletPath 元素,一个用于所有 docletArtifacts。根据文档:

Specifies the path to the doclet starting class file (specified with the -doclet option) and any jar files it depends on. The docletPath can contain multiple paths by separating them with a colon (:) or a semi-colon (;).

official example 还展示了如何使用它:我试过了,在我们公司内部的 Artifactory 上配置了依赖项,没有指定任何 jar 的任何路径,并且成功解决了附加依赖项,因此 -再次 - 我还会检查 Artifactory 的配置以及您的自定义 doclet 库是否可以从插件存储库访问。