使用Ant进行Git推送

时间:2014-02-07 15:39:56

标签: git ant ssh git-push git-pull

我正在尝试使用clear Ant运行git push命令无需输入密码,但我仍然没有运气。

我设法运行git statusgit commit。它清楚为什么 - 这个命令不需要任何Web访问。这是我用它的代码:

<macrodef name="git">
    <attribute name="command" />
    <attribute name="dir" default="" />
    <element name="args" optional="true" />
    <sequential>
        <echo message="${git} @{command}" />
        <exec executable="${git}" dir="@{dir}">
            <arg value="@{command}" />
            <args/>
        </exec>
    </sequential>
</macrodef>

Http连接总是询问用户密码,虽然我想到了SSH:

<target name="push_sshexec">
    <sshexec host="bitbucket.org"
             keyfile="${ssh.keyfile}"
             username="username"
             verbose="true"
             trust="true"
             command="${git}"/>
</target>

但是在这一点上它失败了:

  
Authentications that can continue: publickey,keyboard-interactive,password
Next authentication method: publickey
Disconnecting from bitbucket.org port 22
*pathtoproject*\ant-for-git.xml:61: com.jcraft.jsch.JSchException: Auth fail
at org.apache.tools.ant.taskdefs.optional.ssh.SSHExec.execute(SSHExec.java:218)
  

当我尝试使用GitBash通过SSH进行pushpull时,一切都很好。我确定私钥和公钥都是他们应该的(多次检查)。 我知道我在使用Ant连接到我的存储库时遗漏了一些东西,但我看不出它是什么。

我已经阅读了很多信息,但没有找到我需要的信息。

我会很高兴任何建议和解决方案。

P.S。我可以用JGit编写push方法并将其导入到Ant构建中,但我真的想在明确的Ant中创建它。

屏幕截图: Working git push in cmd.exe but fail when running with Ant

0 个答案:

没有答案