2016-08-19 178 views
0

在使用maven构建项目期间,在更新其父项目的版本后,我遇到了生成javadoc的问题。Maven搜索site.xml缺失的英语语言环境

2016-08-18 16:06:44.559 [INFO] <<< maven-javadoc-plugin:2.10.3:aggregate < generate-sources @ org.eclipse.scout.rt <<< 
2016-08-18 16:06:44.560 [DEBUG] building maven31 dependency graph for org.eclipse.scout.rt:org.eclipse.scout.rt:pom:6.0.0-SNAPSHOT with Maven31DependencyGraphBuilder 
2016-08-18 16:06:44.560 [DEBUG] Dependency collection stats: {ConflictMarker.analyzeTime=0, ConflictMarker.markTime=0, ConflictMarker.nodeCount=1, ConflictIdSorter.graphTime=0, ConflictIdSorter.topsortTime=0, ConflictIdSorter.conflictIdCount=0, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=0, ConflictResolver.conflictItemCount=0, DefaultDependencyCollector.collectTime=0, DefaultDependencyCollector.transformTime=0} 
2016-08-18 16:06:44.561 [DEBUG] org.eclipse.scout.rt:org.eclipse.scout.rt:pom:6.0.0-SNAPSHOT 
2016-08-18 16:06:44.636 [DEBUG] canGenerateReport = true for project MavenProject: org.eclipse.scout.rt:org.eclipse.scout.rt:6.0.0-SNAPSHOT @ /home/<REDACTED>/workspace/org.eclipse.scout.rt.branch-6.0_nightly-sitedocs/org.eclipse.scout.rt/pom.xml 
2016-08-18 16:06:44.662 [DEBUG] Computing decoration model of org.eclipse.scout.rt:org.eclipse.scout.rt:pom:6.0.0-SNAPSHOT for locale en 
2016-08-18 16:06:44.662 [DEBUG] No site descriptor found for org.eclipse.scout.rt:org.eclipse.scout.rt:pom:6.0.0-SNAPSHOT 
2016-08-18 16:06:44.663 [DEBUG] Looking for site descriptor of level 1 parent project: org.eclipse.scout:maven_rt_plugin_config-master:pom:2.0.7 
2016-08-18 16:06:44.665 [DEBUG] Using transporter WagonTransporter with priority -1.0 for <REDACTED> 
2016-08-18 16:06:44.666 [DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for <REDACTED> 
2016-08-18 16:06:44.666 [INFO] Downloading: <REDACTED>/org/eclipse/scout/maven_rt_plugin_config-master/2.0.7/maven_rt_plugin_config-master-2.0.7-site_en.xml 
2016-08-18 16:06:45.289 [DEBUG] Writing tracking file /home/<REDACTED>/workspace/org.eclipse.scout.rt.branch-6.0_nightly-sitedocs/.repository/org/eclipse/scout/maven_rt_plugin_config-master/2.0.7/maven_rt_plugin_config-master-2.0.7-site_en.xml.lastUpdated 
2016-08-18 16:06:45.597 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.5.1:site (default-cli) on project org.eclipse.scout.rt: SiteToolException: The site descriptor cannot be resolved from the repository: ArtifactResolutionException: Unable to locate site descriptor: Could not transfer artifact org.eclipse.scout:maven_rt_plugin_config-master:xml:site_en:2.0.7 from/to AAA.libs.release (<REDACTED>): Access denied to: <REDACTED>/org/eclipse/scout/maven_rt_plugin_config-master/2.0.7/maven_rt_plugin_config-master-2.0.7-site_en.xml , ReasonPhrase:Forbidden. 
2016-08-18 16:06:45.598 [ERROR] org.eclipse.scout:maven_rt_plugin_config-master:xml:2.0.7 
2016-08-18 16:06:45.598 [ERROR] 
2016-08-18 16:06:45.598 [ERROR] from the specified remote repositories: 
2016-08-18 16:06:45.598 [ERROR] AAA.libs.release (<REDACTED>, releases=true, snapshots=false), 
2016-08-18 16:06:45.599 [ERROR] AAA.libs.snapshots (<REDACTED>, releases=false, snapshots=true), 
2016-08-18 16:06:45.599 [ERROR] eclipse.release (https://repo.eclipse.org/content/groups/releases/, releases=true, snapshots=false), 
2016-08-18 16:06:45.599 [ERROR] eclipse.snapshot (https://repo.eclipse.org/content/groups/snapshots/, releases=true, snapshots=true), 
2016-08-18 16:06:45.599 [ERROR] remote-repos (<REDACTED>, releases=true, snapshots=false) 

正如你所看到的,它会尝试下载maven_rt_plugin_config主-2.0.7-的site_ 的.xml,这实际上并不存在。然而,确实存在这样一个没有_en后缀的xml ...

据我所知,我没有指定任何语言环境,并且似乎没有与站点或javadoc生成相关的父项目中的更改。

为什么Maven不会回退到默认的语言环境?

回答

0

此问题的原因是我们的存储库(JFrog Artifactory)的行为: 请求的存储库是virtual repository,它聚合了多个物理存储库。

它回复一个403(禁止)如果请求的神器不能在用户访问该存储库中找到 - 有用户不访问存在他人。然后,Maven似乎停止在同一个存储库中查找替代文件。

JFrog Artifactory存在一个feature request来改变行为,但是(写作时)没有人正在处理它。

我们的解决方案是将settings.xml更改为直接指向存储库。然后,Maven将收到英文语言环境版本(site_en.xml)的404(Not Found),并正确回退到默认site.xml。当用403

1

在这种情况下,可能会帮助提供给其他试图弄清楚为什么Maven是寻找从父项目site.xmlsite_en.xml和失败时的愿望只是其他几个Maven插件也表现出这个问题使用默认设置:

使用SpringBoot时遇到类似的问题。 mvn clean site失败尝试从中央(https://repo.maven.apache.org/maven2)与转移spring-boot-starter-parent:xml:site_en:1.4.0.RELEASE

repo.maven.apache.org:443 repo.maven.apache.org/xxxx失败: 连接超时:接

当项目配置为使用公司存储库时发生这种情况,但在使用maven central direct时未发生。它看来,在公司存储库存在的情况下,请求被代理为安全请求。对中央系统的安全请求失败,出现“超时”,无法构建。如果请求不安全,“未找到”将从中央返回,maven将继续使用默认设置。所以在这种情况下,404会很好(按照需要继续默认)其他错误代码不好(构建失败)。

周围有这样的几种方法:

  • 安装文件到你的本地库(黑客)公司回购服务器上
  • 配置变化(可能是真正的解决,如在接受描述相同答案)
  • 配置代理在Maven设置settings.xml文件

这里是settings.xml代理配置的例子:

<proxy> 
    <active>true</active> 
    <protocol>http</protocol> 
    <host>my.corporate.proxy</host> 
    <port>myPort</port> 
    <nonProxyHosts>*.my.corporate.domain|*.my.subsidiary.domain</nonProxyHosts> 
</proxy>