Maven `mvn -PautoInstallPackage clean install` 从 VM 来宾到主机失败
Maven `mvn -PautoInstallPackage clean install` fail from VM guest to host
TLDR;
以下命令无法 运行 在 Virtual Box guest OS 中构建和安装工件到主机 运行 上的 AEM 6.3 Author 实例 OS .
mvn -PautoInstallPackage clean install
主机在企业代理后面,来宾 OS 配置了 CNTLM 和 Maven 代理文件。
更长的版本
我使用 VirtualBox VM 进行开发 - 主要是为了缓解公司软件安装限制。尝试 运行 以下命令来构建和部署 AEM 6.3 多模块项目,但一直失败。以下是maven命令:
mvn -PautoInstallPackage clean install
构建停止 运行超过这一点:
[INFO] Discarding unexpected response: HTTP/1.1 100 Continue
当我 运行 带有调试标志 (-X
) 的相同命令时,我在错误之前得到以下几行:
...
[DEBUG] Request body sent
[DEBUG] << "HTTP/1.1 100 Continue[\r][\n]"
[DEBUG] << "HTTP/1.1 100 Continue[\r][\n]"
[DEBUG] << "Proxy-Connection: keep-alive[\r][\n]"
[DEBUG] << "Connection: keep-alive[\r][\n]"
[DEBUG] << "[\r][\n]"
[INFO] Discarding unexpected response: HTTP/1.1 100 Continue
我的设置的一些关键细节:
- 主机 OS 是 Windows 7 Enterprise - 这是我的 AEM 6.3 Author 实例 运行ning
- 访客 OS 是 Ubuntu 16.04.4 LTS - 这是我开发的地方
- 计算机连接到位于公司代理后面的网络
- 使用 CNTLM、
http_proxy
、https_proxy
env 变量和 ~/.m2/settings.xml
for Maven 在 VM guest 上设置代理
- Maven 可以毫无问题地从 Internet 获取所有依赖项
- 所有其他命令,如
npm install
、curl
都可以很好地从 Internet 获取内容
- 我已将
10.*
添加到 CNTLM 和 Maven settings.xml
文件的白名单中
- 在 Virtual Box 设置中我添加了 Host-only Adapter
- 我可以通过 http://10.0.2.2:4502
通过浏览器连接到主机 OS 上的 AEM 实例 运行ning
完整的错误日志文件:https://paste.ee/p/dph1n
非常感谢任何帮助。
我在日志中看到的内容:
- 插件
content-package-maven-plugin
尝试将已编译的项目发送到 http://10.0.2.2:4502/crx/packmgr/service.jsp`
- 插件使用
Jakarta Commons-HttpClient/3.1
用于 HTTP
- 插件在 HttpClient 中设置 属性
http.protocol.expect-continue = true
这意味着它可以以正确的方式处理 HTTP 响应 100-Continue
- 发送 header 秒的 HTTP 请求后 plugin/HttpClient 等待
100-Continue
超时 5 秒(Set parameter http.connection.timeout = 5000
在日志 https://paste.ee/p/dph1n#s=0&l=2481 中)
- 服务器在 5 秒内没有响应(可能是日志中没有时间戳)。日志中的消息
[INFO] 100 (continue) read timeout. Resume sending the request
https://paste.ee/p/dph1n#s=0&l=2500
- plugin/HttpClient 发送 HTTP 请求 body
- 服务器 return 对
100-continue
的意外响应。出乎意料,因为客户已经不在等待了。
尝试在 content-package-maven-plugin
配置中增加 timeout
(https://paste.ee/p/dph1n#s=0&l=2448)。可能 5 秒不足以从服务器获得响应。
已更新
我不确定您是否使用 squid 作为代理(日志中的端口 3128)。但如果这是真的,您可以尝试使用解决方法 - 禁用在代理上传递请求的 header Expect: 100-continue
,如此处所述 http://www.squid-cache.org/Versions/v3/3.1/cfgman/ignore_expect_100.html
从 VM 内部署到主机上的 AEM 根本不需要代理。
尝试在内容包 maven 插件的配置部分设置 <useProxy>false</useProxy>
。有关详细信息,请参阅 content-package-maven-plugin 文档。
TLDR;
以下命令无法 运行 在 Virtual Box guest OS 中构建和安装工件到主机 运行 上的 AEM 6.3 Author 实例 OS .
mvn -PautoInstallPackage clean install
主机在企业代理后面,来宾 OS 配置了 CNTLM 和 Maven 代理文件。
更长的版本
我使用 VirtualBox VM 进行开发 - 主要是为了缓解公司软件安装限制。尝试 运行 以下命令来构建和部署 AEM 6.3 多模块项目,但一直失败。以下是maven命令:
mvn -PautoInstallPackage clean install
构建停止 运行超过这一点:
[INFO] Discarding unexpected response: HTTP/1.1 100 Continue
当我 运行 带有调试标志 (-X
) 的相同命令时,我在错误之前得到以下几行:
...
[DEBUG] Request body sent
[DEBUG] << "HTTP/1.1 100 Continue[\r][\n]"
[DEBUG] << "HTTP/1.1 100 Continue[\r][\n]"
[DEBUG] << "Proxy-Connection: keep-alive[\r][\n]"
[DEBUG] << "Connection: keep-alive[\r][\n]"
[DEBUG] << "[\r][\n]"
[INFO] Discarding unexpected response: HTTP/1.1 100 Continue
我的设置的一些关键细节:
- 主机 OS 是 Windows 7 Enterprise - 这是我的 AEM 6.3 Author 实例 运行ning
- 访客 OS 是 Ubuntu 16.04.4 LTS - 这是我开发的地方
- 计算机连接到位于公司代理后面的网络
- 使用 CNTLM、
http_proxy
、https_proxy
env 变量和~/.m2/settings.xml
for Maven 在 VM guest 上设置代理
- Maven 可以毫无问题地从 Internet 获取所有依赖项
- 所有其他命令,如
npm install
、curl
都可以很好地从 Internet 获取内容 - 我已将
10.*
添加到 CNTLM 和 Mavensettings.xml
文件的白名单中 - 在 Virtual Box 设置中我添加了 Host-only Adapter
- 我可以通过 http://10.0.2.2:4502 通过浏览器连接到主机 OS 上的 AEM 实例 运行ning
完整的错误日志文件:https://paste.ee/p/dph1n
非常感谢任何帮助。
我在日志中看到的内容:
- 插件
content-package-maven-plugin
尝试将已编译的项目发送到 http://10.0.2.2:4502/crx/packmgr/service.jsp` - 插件使用
Jakarta Commons-HttpClient/3.1
用于 HTTP - 插件在 HttpClient 中设置 属性
http.protocol.expect-continue = true
这意味着它可以以正确的方式处理 HTTP 响应100-Continue
- 发送 header 秒的 HTTP 请求后 plugin/HttpClient 等待
100-Continue
超时 5 秒(Set parameter http.connection.timeout = 5000
在日志 https://paste.ee/p/dph1n#s=0&l=2481 中) - 服务器在 5 秒内没有响应(可能是日志中没有时间戳)。日志中的消息
[INFO] 100 (continue) read timeout. Resume sending the request
https://paste.ee/p/dph1n#s=0&l=2500 - plugin/HttpClient 发送 HTTP 请求 body
- 服务器 return 对
100-continue
的意外响应。出乎意料,因为客户已经不在等待了。
尝试在 content-package-maven-plugin
配置中增加 timeout
(https://paste.ee/p/dph1n#s=0&l=2448)。可能 5 秒不足以从服务器获得响应。
已更新
我不确定您是否使用 squid 作为代理(日志中的端口 3128)。但如果这是真的,您可以尝试使用解决方法 - 禁用在代理上传递请求的 header Expect: 100-continue
,如此处所述 http://www.squid-cache.org/Versions/v3/3.1/cfgman/ignore_expect_100.html
从 VM 内部署到主机上的 AEM 根本不需要代理。
尝试在内容包 maven 插件的配置部分设置 <useProxy>false</useProxy>
。有关详细信息,请参阅 content-package-maven-plugin 文档。