I have a problem with the Maven Javadoc Plugin and a custom doclet.
I'm using the maven-javadoc-plugin v2.10.1 and a custom doclet which is basicly a maven jar project.
I have also a settings.xml
which defines the central
repository to a custom artifactory.
The problem is that evertime I run the maven-javadoc-plugin it tries to resolves the dependencies of the custom doclet from https://repo.maven.apache.org/maven2
, the doclet himself it resolves from the custom artifactory.
The debug output is also very strange, it says that the central
repository is https://repo.maven.apache.org/maven2
and the snapshot
repository is my custom snapshot artifactory.
It locks like the maven-jar-plugin overwrites the central
repository of the settings.xml
.
How can I tell the maven-jar-plugin
not to overwrite my central
repository.
The debug log looks like this:
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\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
I have to cut some Stacktraces and, hopefully, unnecessary debug logs because I only have 30000 Characters.
Here is the parent POM with the configuration of the maven-javadoc-plugin
<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>
Update: Here are my 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>
I hope some can help me with this issue.
With regards
Possible troubleshooting paths:
Maven Settings (after your latest update/edit, this is already checked)
The settings.xml
file providing the configuration for your custom Maven repository might only point at it in its repositories
section (repositories used for dependencies mediation) and not on the pluginRepositories
section as well (repositories used for plugin/reporting mediation and plugin's dependencies mediation).
From official maven documentation the pluginRepositories
should specify:
The lists of the remote repositories for discovering plugins.
Without this additional configuration, Maven will try to resolve plugin's dependencies on the default repository for plugin, which comes from the Maven super POM. Looking at it, the default repository for plugins is effectively the one your build is pointing at (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>
If you want to see the effective settings you Maven build is using, then you could run the following command and check its output:
mvn help:effective-pom
The effective-pom
goal will print as part of the build output the whole merged pom and settings used. From it, you should be able to see which pluginRepositories
is your build effectively using.
NOTE: the -Doutput
parameter could be helpful to redirect it to an external file.
Artifactory configuration
If not the case (hence, configuration is coherent and pointing to your custom Maven repository in both sections), you should check whether the custom repositories are well configured:
From the output snippet you provided:
[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)]
It might actually be the case.
This is a common misconfiguration (I've hit this wall as well in the past). Actually in most of the cases you don't even need a different repository for plugin dependencies and it would be easier and more clear to only have one virtual repository for released libraries and one for snapshot libraries, both providing dependencies and plugin artefacts. So, make a distinction only between released and snapshot, but not between dependencies and plugins (or, if you really want to the keep the current configuration, you could add the libs repository as part of the virtual plugins repository).
A simple and harmless test would be:
Use Plugin dependencies (after your latest comments: bingo!, this fixed the issue)
You should add the required dependency as plugin dependencies as following:
<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>
Note the dependencies
section at the bottom of the concerned plugin
section. Plugins do not resolve project dependencies, so if external libraries are required you need to declare them as plugin dependencies instead.
However, the Javadoc Maven Plugin also provides an additionalDependencies
, which replicates the (standard) functionality above for its specific scope.
capability to add optionnal dependencies to the javadoc classpath
However, based on your feedback, the standard approach made the trick.
EDIT (02/02/2016 9:37)
If you also need the dependency for reporting (based on your latest comments), then indeed the reporting section doesn't foresee plugin dependencies as plugins do. This is known issue.
However, two workarounds are suggested:
Set the dependency as 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>
As from 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.
Set the dependency for the plugin (as already suggested above) should instead be applied to both plugin and reporting mechanism, as also described 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.
Similar approach is also documented here.
EDIT (03/02/2016) (after your latest comments: bingo!, using build extensions fixed the issue)
Use the docletPath configuration element
Looking at 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
option of the official javadoc
command.
Looking at the official documentation, the path approach is preferred above the Maven dependencies approach. So your configuration could be adapted as following:
<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>
Note the docletPath
element, one for all docletArtifacts. As per documentation:
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 (;).
An official example also shows how to use it: I tried it, having the dependency configured on our internal company Artifactory and without specifying any path to any jar, and the additional dependency was resolved successfully, hence - again - I would also check Artifactory's configuration and whether your custom doclet library is accessible from the plugin repository.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With