ssl - 直接从 Apache Ant 调用时,为什么带有 SSL 的 cURL 不起作用

标签 ssl ant curl

我正在使用 https 访问一个站点。如果我在 Apache Ant 的 exec 任务中使用 curl,它会失败并提示“libcurl 不支持或禁用 https”;但是,如果我使用 sh -c 通过 shell 从 Ant 发出相同的调用,它会起作用。

这是我的 Ant 目标:

<target name="list-milestones">
    <echo>Via SH</echo>
    <exec executable="sh" dir="." failonerror="true">
        <arg value='-c' />
        <arg value='/bin/env' />
    </exec>
    <exec executable="sh" dir="." failonerror="true">
        <arg value='-c' />
        <arg value='/usr/bin/curl --config ${user.home}/.curlrc -k -X GET -H "Accept: application/xml" "https://www.assembla.com/spaces/milestones/all/tibant" -o "build/milestones.xml"' />
    </exec>
    <echo>Direct</echo>
    <exec executable="/bin/env" dir="." failonerror="true">
    </exec>
    <exec executable="/usr/bin/curl" dir="." failonerror="true">
        <arg value='--config' />
        <arg value='${user.home}/.curlrc' />
        <arg value='-k' />
        <arg value='-X' />
        <arg value='GET' />
        <arg value='-H' />
        <arg value='"Accept: application/xml"' />
        <arg value='"https://www.assembla.com/spaces/milestones/all/tibant"' />
        <arg value='-o' />
        <arg value='"build/milestones.xml"' />
    </exec>
</target>

这是输出:

-sh-4.2$ ant list-milestones
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=lcd
Buildfile: /usr/share/jenkins/jobs/TIBant-07-Upload/workspace/build.xml
[TIBant-Build] LOADING: /usr/share/jetty/TIBant-Build.properties
[TIBant-Build] LOADING: /usr/share/jetty/build.properties
[TIBant-Build] LOADING: config/ci.properties
[TIBant-Build] LOADING: config/default.properties
   [TIBant] IMPORTED: tibant.xml
   [TIBant] TIBant Home: /usr/share/jenkins/jobs/TIBant-07-Upload/workspace/src/ant

list-milestones:
     [echo] Via SH
     [exec] HOSTNAME=ve.mbqblqmj.vesrv.com
     [exec] ANT_BIN=/usr/lib/apache-ant-1.8.2/bin
     [exec] SHELL=/bin/sh
     [exec] TERM=xterm-256color
     [exec] HISTSIZE=1000
     [exec] TIBCO_HOME=/opt/tibco
     [exec] ANT_HOME=/usr/lib/apache-ant-1.8.2
     [exec] ANT_OPTS=-Xmx128m -Djava.awt.headless=true
     [exec] JAVA_OPTS=-Xmx128m -Djava.awt.headless=true
     [exec] USER=jetty
     [exec] LD_LIBRARY_PATH=/usr/lib/jvm/jdk1.6.0_27/jre/lib/amd64/server:/usr/lib/jvm/jdk1.6.0_27/jre/lib/amd64:/usr/lib/jvm/jdk1.6.0_27/jre/../lib/amd64
     [exec] JETTY_PORT=8080
     [exec] JAVA_BIN=/usr/lib/jvm/jdk1.6.0_27/bin
     [exec] LS_COLORS=rs=0:di=38;5;27:ln=38;5;51:mh=44;38;5;15:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=05;48;5;232;38;5;15:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;34:*.tar=38;5;9:*.tgz=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.Z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lz=38;5;9:*.xz=38;5;9:*.bz2=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.bz=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38;5;9:*.sar=38;5;9:*.rar=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.jpg=38;5;13:*.jpeg=38;5;13:*.gif=38;5;13:*.bmp=38;5;13:*.pbm=38;5;13:*.pgm=38;5;13:*.ppm=38;5;13:*.tga=38;5;13:*.xbm=38;5;13:*.xpm=38;5;13:*.tif=38;5;13:*.tiff=38;5;13:*.png=38;5;13:*.svg=38;5;13:*.svgz=38;5;13:*.mng=38;5;13:*.pcx=38;5;13:*.mov=38;5;13:*.mpg=38;5;13:*.mpeg=38;5;13:*.m2v=38;5;13:*.mkv=38;5;13:*.ogm=38;5;13:*.mp4=38;5;13:*.m4v=38;5;13:*.mp4v=38;5;13:*.vob=38;5;13:*.qt=38;5;13:*.nuv=38;5;13:*.wmv=38;5;13:*.asf=38;5;13:*.rm=38;5;13:*.rmvb=38;5;13:*.flc=38;5;13:*.avi=38;5;13:*.fli=38;5;13:*.flv=38;5;13:*.gl=38;5;13:*.dl=38;5;13:*.xcf=38;5;13:*.xwd=38;5;13:*.yuv=38;5;13:*.cgm=38;5;13:*.emf=38;5;13:*.axv=38;5;13:*.anx=38;5;13:*.ogv=38;5;13:*.ogx=38;5;13:*.aac=38;5;45:*.au=38;5;45:*.flac=38;5;45:*.mid=38;5;45:*.midi=38;5;45:*.mka=38;5;45:*.mp3=38;5;45:*.mpc=38;5;45:*.ogg=38;5;45:*.ra=38;5;45:*.wav=38;5;45:*.axa=38;5;45:*.oga=38;5;45:*.spx=38;5;45:*.xspf=38;5;45:
     [exec] JETTY_USER=jenkins
     [exec] _JAVA_OPTIONS=-Dawt.useSystemAAFontSettings=lcd
     [exec] NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat
     [exec] JENKINS_HOME=/usr/share/jenkins
     [exec] DESIGNER_BIN=/opt/tibco/designer/5.7/bin
     [exec] MAIL=/var/spool/mail/jetty
     [exec] PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/var/cfengine/bin
     [exec] PWD=/usr/share/jenkins/jobs/TIBant-07-Upload/workspace
     [exec] JAVA_HOME=/usr/lib/jvm/jdk1.6.0_27
     [exec] LANG=en_US.UTF-8
     [exec] XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt
     [exec] HISTCONTROL=ignoredups
     [exec] SHLVL=2
     [exec] HOME=/usr/share/jetty
     [exec] LOGNAME=jetty
     [exec] LESSOPEN=||/usr/bin/lesspipe.sh %s
     [exec] DISPLAY=:0.0
     [exec] G_BROKEN_FILENAMES=1
     [exec] _=/bin/env
     [exec]   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
     [exec]                                  Dload  Upload   Total   Spent    Left  Speed
     [exec] 
     [exec]   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
     [exec] 100 22852    0 22852    0     0  33357      0 --:--:-- --:--:-- --:--:-- 34835
     [echo] Direct
     [exec] HOSTNAME=ve.mbqblqmj.vesrv.com
     [exec] ANT_BIN=/usr/lib/apache-ant-1.8.2/bin
     [exec] TERM=xterm-256color
     [exec] SHELL=/bin/sh
     [exec] HISTSIZE=1000
     [exec] ANT_HOME=/usr/lib/apache-ant-1.8.2
     [exec] TIBCO_HOME=/opt/tibco
     [exec] ANT_OPTS=-Xmx128m -Djava.awt.headless=true
     [exec] USER=jetty
     [exec] JAVA_OPTS=-Xmx128m -Djava.awt.headless=true
     [exec] LS_COLORS=rs=0:di=38;5;27:ln=38;5;51:mh=44;38;5;15:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=05;48;5;232;38;5;15:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;34:*.tar=38;5;9:*.tgz=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.Z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lz=38;5;9:*.xz=38;5;9:*.bz2=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.bz=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38;5;9:*.sar=38;5;9:*.rar=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.jpg=38;5;13:*.jpeg=38;5;13:*.gif=38;5;13:*.bmp=38;5;13:*.pbm=38;5;13:*.pgm=38;5;13:*.ppm=38;5;13:*.tga=38;5;13:*.xbm=38;5;13:*.xpm=38;5;13:*.tif=38;5;13:*.tiff=38;5;13:*.png=38;5;13:*.svg=38;5;13:*.svgz=38;5;13:*.mng=38;5;13:*.pcx=38;5;13:*.mov=38;5;13:*.mpg=38;5;13:*.mpeg=38;5;13:*.m2v=38;5;13:*.mkv=38;5;13:*.ogm=38;5;13:*.mp4=38;5;13:*.m4v=38;5;13:*.mp4v=38;5;13:*.vob=38;5;13:*.qt=38;5;13:*.nuv=38;5;13:*.wmv=38;5;13:*.asf=38;5;13:*.rm=38;5;13:*.rmvb=38;5;13:*.flc=38;5;13:*.avi=38;5;13:*.fli=38;5;13:*.flv=38;5;13:*.gl=38;5;13:*.dl=38;5;13:*.xcf=38;5;13:*.xwd=38;5;13:*.yuv=38;5;13:*.cgm=38;5;13:*.emf=38;5;13:*.axv=38;5;13:*.anx=38;5;13:*.ogv=38;5;13:*.ogx=38;5;13:*.aac=38;5;45:*.au=38;5;45:*.flac=38;5;45:*.mid=38;5;45:*.midi=38;5;45:*.mka=38;5;45:*.mp3=38;5;45:*.mpc=38;5;45:*.ogg=38;5;45:*.ra=38;5;45:*.wav=38;5;45:*.axa=38;5;45:*.oga=38;5;45:*.spx=38;5;45:*.xspf=38;5;45:
     [exec] JAVA_BIN=/usr/lib/jvm/jdk1.6.0_27/bin
     [exec] JETTY_PORT=8080
     [exec] JETTY_USER=jenkins
     [exec] _JAVA_OPTIONS=-Dawt.useSystemAAFontSettings=lcd
     [exec] JENKINS_HOME=/usr/share/jenkins
     [exec] PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/var/cfengine/bin
     [exec] MAIL=/var/spool/mail/jetty
     [exec] DESIGNER_BIN=/opt/tibco/designer/5.7/bin
     [exec] PWD=/usr/share/jenkins/jobs/TIBant-07-Upload/workspace
     [exec] JAVA_HOME=/usr/lib/jvm/jdk1.6.0_27
     [exec] LANG=en_US.UTF-8
     [exec] HISTCONTROL=ignoredups
     [exec] HOME=/usr/share/jetty
     [exec] SHLVL=1
     [exec] LOGNAME=jetty
     [exec] LESSOPEN=||/usr/bin/lesspipe.sh %s
     [exec] DISPLAY=:0.0
     [exec] G_BROKEN_FILENAMES=1
     [exec] LD_LIBRARY_PATH=/usr/lib/jvm/jdk1.6.0_27/jre/lib/amd64/server:/usr/lib/jvm/jdk1.6.0_27/jre/lib/amd64:/usr/lib/jvm/jdk1.6.0_27/jre/../lib/amd64
     [exec] NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat
     [exec] XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt
     [exec] 
     [exec] curl: (1) Protocol "https not supported or disabled in libcurl

BUILD FAILED
/usr/share/jenkins/jobs/TIBant-07-Upload/workspace/build.xml:509: exec returned: 1

我对环境进行了排序和比较,没有发现任何显着差异。

这让我难住了。帮助!

最佳答案

您不需要在 arg 值中使用额外的双引号 "。以下对我有用。引号被视为文字,并传递给 curl - 因此它认为您尝试使用的协议(protocol)是 "https 而不是您想要的 https

<exec executable="/usr/bin/curl" dir="." failonerror="true">
    <arg value='--config' />
    <arg value='${user.home}/.curlrc' />
    <arg value='-k' />
    <arg value='-X' />
    <arg value='GET' />
    <arg value='-H' />
    <arg value='Accept: application/xml' />
    <arg value='https://www.assembla.com/spaces/milestones/all/tibant' />
    <arg value='-o' />
    <arg value='build/milestones.xml' />
</exec>

Accept...https:...build/milesones.xml 是更改后的 arg 值。

关于ssl - 直接从 Apache Ant 调用时,为什么带有 SSL 的 cURL 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7881659/

相关文章:

ssl - 非 SSL 站点对 SSL 站点进行 API 调用

tomcat - 使用 updateApplicationServer ANT 任务在 Tomcat 上更新 WAR 文件似乎需要重新启动应用程序服务器?

java - Ant except 不排除目录

post - cURL POST --data-binary vs --form

php - 无法在 Windows 7 64 位上启用 CURL - WAMP - PHP 5.3.13 Apache 2.2.22

ruby-on-rails - Ruby on Rails 和内容类型为 : text/plain 的 POST

ios - TLS V 1.1 和 TLS V 1.2 iOS 问题

从非 ssl 端口 8080 重定向到 ssl 端口 8443

php - PDO SSL - 奇怪的行为

java - 运行 Jar 文件时出现问题