我遇到了Maven Javadoc插件和自定义doclet的问题。
我正在使用maven-javadoc-plugin v 2.10.1 和一个自定义doclet,它基本上是一个maven jar项目。
我还有一个settings.xml
,它将central
存储库定义为自定义工件。
问题在于evertime我运行maven-javadoc-plugin它试图从https://repo.maven.apache.org/maven2
解析自定义doclet的依赖关系,doclet自己从自定义神器中解析出来。
调试输出也很奇怪,它说central
存储库是https://repo.maven.apache.org/maven2
而snapshot
存储库是我的自定义快照工件。
它像maven-jar-plugin一样锁定覆盖central
的{{1}}存储库。
如何告诉settings.xml
不要覆盖我的maven-jar-plugin
存储库。
调试日志如下所示:
central
我必须剪切一些Stacktraces,希望不必要的调试日志,因为我只有30000个字符。
以下是具有maven-javadoc-plugin
配置的父POMApache 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\0.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\0.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
更新:以下是我的<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
我希望有些人可以帮我解决这个问题。
关于
答案 0 :(得分:5)
可能的故障排除路径:
Maven设置(在您最新的更新/编辑之后,已经检查过了)
为您的自定义Maven存储库提供配置的settings.xml
文件可能只在其repositories
部分(用于依赖项中介的存储库)中指向它,而不是在pluginRepositories
部分指向它(用于插件/报告中介和插件依赖中介的存储库)。
从official maven documentation pluginRepositories
应指定:
用于发现插件的远程存储库列表。
如果没有这个额外的配置,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存储库),您应该检查自定义存储库是否配置良好:
从您提供的输出代码段:
[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存储库添加为虚拟插件存储库的一部分)。
简单而无害的测试将是:
使用插件依赖(在您最新评论之后: 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>
请注意相关dependencies
部分底部的plugin
部分。插件不解决项目依赖性,因此如果需要外部库,则需要将它们声明为插件依赖项。
但是,Javadoc Maven插件还提供了additionalDependencies
,它复制了上面针对特定范围的(标准)功能。
将选项依赖项添加到javadoc类路径
的功能
但是,根据您的反馈,标准方法成功了。
编辑(02/02/2016 9:37)
如果您还需要依赖报告(基于您的最新评论),那么报告部分确实没有像插件那样预见插件依赖性。这是known issue。
但是,建议采用两种解决方法:
将依赖项设置为build [extension](https://maven.apache.org/pom.html#Extensions)(请参阅下面的代码段),尽管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>
扩展是此构建中要使用的工件列表。它们将包含在正在运行的构建类路径中。
设置插件的依赖关系(如上所述)应该应用于插件和报告机制,如同in this Sonatype post
所述有一种方法可以通过报告实现这一目标。在下面的示例中,我从插件块中删除了执行并将插件添加为报表。当插件用于报告时,似乎继承了依赖关系。
同样的方法也记录在案here。
编辑(03/02/2016)(在您最新评论之后: bingo!,使用构建扩展修复了此问题)
使用docletPath配置元素
查看Maven Javadoc插件的official documentation,docletPath
配置元素应提供外部文件(依赖项)的路径,该路径与预期的docletPath
选项对齐官方javadoc
命令。
查看官方文档,路径方法优于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。根据文件:
指定doclet起始类文件的路径(使用-doclet选项指定)及其依赖的任何jar文件。 docletPath可以通过用冒号(:)或分号(;)分隔它们来包含多个路径。
official example也显示了如何使用它:我尝试了它,在我们的内部公司Artifactory上配置了依赖关系而没有指定任何jar的任何路径,并且附加的依赖关系已成功解决,因此 - 再次 - 我还会检查Artifactory的配置以及是否可以从插件存储库访问您的自定义doclet库。