首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自定义apache ant任务git-add (jgit)无法工作。

自定义apache ant任务git-add (jgit)无法工作。
EN

Stack Overflow用户
提问于 2014-07-18 11:30:19
回答 1查看 212关注 0票数 0

我编写了使用jgit的自定义ant任务。它应该使用本地存储库地址和目录地址,并将目录中的所有文件添加到索引中。它成功地构建了,但不幸的是,它无法工作。我对此完全陌生,所以我想知道你们中的一些人是否能帮我找到问题,或者我错过了什么。这是我的密码:

代码语言:javascript
运行
复制
package customGitTasks;

import java.io.File;

import org.apache.tools.ant.Task;
import org.apache.tools.ant.BuildException;
import org.eclipse.jgit.api.AddCommand;
import org.eclipse.jgit.api.Git;


public class GitAdd extends Task{

    private String dir;
    private String repository;

    public void setRepository(String repository) {
        this.repository = repository;
        }

    public void setDir(String dir) {
        this.dir = dir;
        }

public void execute() throws BuildException {
    try {

        Git git = Git.open(new File(repository));
        AddCommand add = git.add();
        add.addFilepattern(dir).call();

    } catch (Exception e) {
        e.printStackTrace();
        System.out.println(e.getMessage());
    }
}
}

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-18 12:20:19

JGit在其他git相关任务 (gitadd、gitcheckout、gitclone、gitinit)中提供了一个git添加ant任务。

要么使用该任务=> 把jarfile拿来,要么检查gitadd任务的来源以获得灵感。

Beware -在Windows 上运行时,需要修补git任务以使其工作:

代码语言:javascript
运行
复制
// original line 149
//return new File(file).getCanonicalPath().substring(prefix.length() + 1);

String result = new File(file).getCanonicalPath().substring(prefix.length() + 1);
if (File.separatorChar != '/') {
  result = result.replace(File.separatorChar, '/');
}
return result;

意味着文件分配器必须是unix样式。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24824015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档