我有一个奇怪的情况:我正在使用我住的酒店提供的WIFI网络,我必须在网页上验证用户和密码(如果我去google.com没有身份验证,它将我重定向到登录页面。)
正如您所见,我可以毫无问题地浏览网页。 但是Maven给了我这样的信息:
[WARNING] The POM for javax.inject:javax.inject:jar:1 is invalid, transitive dependencies
(if any) will not be available: 1 problem was encountered while building the effective model
[FATAL] Non-parseable POM /home/user/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.pom: entity reference name can not contain character =' (position: TEXT seen ...pitality.swisscom.com/index.php/login/pdalogin?pda=1&incompatible=... @4:134) @ line 4, column 134
查看
的片段pitality.swisscom.com/index.php/login/pdalogin?pda=1&incompatible=
似乎Maven没有使用相同的经过身份验证的连接。
你知道解决这个问题吗?
非常感谢!
编辑:maven找不到的pom文件的内容是这些
<html>
<head>
<noscript>
<META HTTP-EQUIV="refresh" content="5;URL=https://index06.hospitality.swisscom.com/index.php/login/pdalogin?pda=1&incompatible=1&NASID=mi-76-134&LgnURL=https%3A%2F%2Fclblgn.sceur.ch%3A8090%2Fgoform%2FHtmlLoginRequest&NASIP=clblgn.sceur.ch&CallerID=00-22-FB-4F-D9-F6&CustIP=192.168.48.170&VLAN=&Location=Hotspot&Port=8090">
</noscript>
<script type="text/javascript">
function setCookieAndReload()
{
document.cookie = "human=1" + ";path=/;domain=swisscom.com";
window.location = "https://index06.hospitality.swisscom.com/login?NASID=mi-76-134&LgnURL=https%3A%2F%2Fclblgn.sceur.ch%3A8090%2Fgoform%2FHtmlLoginRequest&NASIP=clblgn.sceur.ch&CallerID=00-22-FB-4F-D9-F6&CustIP=192.168.48.170&VLAN=&Location=Hotspot&Port=8090&tested=1";
return;
}
</script>
<script type="text/javascript" src="https://index06.hospitality.swisscom.com/login?NASID=mi-76-134&LgnURL=https%3A%2F%2Fclblgn.sceur.ch%3A8090%2Fgoform%2FHtmlLoginRequest&NASIP=clblgn.sceur.ch&CallerID=00-22-FB-4F-D9-F6&CustIP=192.168.48.170&VLAN=&Location=Hotspot&Port=8090&getjs=1"></script>
</head>
<body>
<p>
Checking browser compatibility.<br>
You will be redirected shortly or click <a href="https://index06.hospitality.swisscom.com/index.php/login/pdalogin?pda=1&incompatible=1&NASID=mi-76-134&LgnURL=https%3A%2F%2Fclblgn.sceur.ch%3A8090%2Fgoform%2FHtmlLoginRequest&NASIP=clblgn.sceur.ch&CallerID=00-22-FB-4F-D9-F6&CustIP=192.168.48.170&VLAN=&Location=Hotspot&Port=8090">here</a>.
</p>
</body>
<!--
<?xml version='1.0' encoding='UTF-8'?>
<WISPAccessGatewayParam xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='WISPAccessGatewayParam.xsd'>
<Redirect>
<MessageType>100</MessageType>
<ResponseCode>0</ResponseCode>
<AccessProcedure>1.0</AccessProcedure>
<LocationName>Hotspot</LocationName>
<AccessLocation>BackEnd Remote Login</AccessLocation>
<LoginURL>https://clblgn.sceur.ch:8090/goform/HtmliPassLoginRequest</LoginURL>
<AbortLoginURL>http://clblgn.sceur.ch:80/goform/HtmliPassLogout</AbortLoginURL>
</Redirect>
</WISPAccessGatewayParam>
-->
</html>
答案 0 :(得分:2)
1:您是否尝试在手动验证之前使用Maven ?如果是,那么您的本地存储库中的文件可能已损坏,并且Maven不够智能以替换它们。我建议删除本地存储库(或将其移动到其他位置)的第一步,并在手动验证后尝试重建。
2:企业网络中是否有可以安装软件的VPN和计算机?如果是,那么在该机器上设置存储库服务器(Nexus易于设置并且是开源版本)可能是值得的。热点通常会无阻碍地传递VPN流量。
3:你觉得设置SSH隧道很舒服吗?如果是,那么您可以使用像Amazon EC2这样的机器来托管Nexus存储库,并使用SSH将localhost:8080运行到该主机。这还需要更改settings.xml。
4:你知道酒店的热点究竟对你的HTTP请求做了什么吗?它们确实不太可能使用修改请求/响应的代理,但如果它们是,并且您知道它们正在做什么,Maven允许您在settings.xml中指定HTTP标头。有关详细信息,请参阅http://maven.apache.org/guides/mini/guide-http-settings.html。
就个人而言,我认为#1将解决您的问题。只需确保在进行构建之前手动进行身份验证(并确保定期重新进行身份验证)。
答案 1 :(得分:0)
看起来您酒店的互联网访问受到限制,只允许通过经过身份验证的会话进行访问。当您与ISP合作修复它(或尝试建议的解决方法)时,您可以尝试在别处(可能是您的办公室)构建它,这不是问题,并设置maven以脱机构建(mvn dependency:go-offline
)。完成此操作后,除非您更新依赖项版本,否则不需要maven连接到Internet。