JGitを使用してJavaプログラムにgit repo(リモートからのコミットと変更のコミット)の呼び出しをインクルードしようとしています。私はhttp://www.codeaffine.com/2014/12/09/jgit-authentication/の手順を踏んだが、Eclipseは私にいくつかのエラーを与える。デフォルト以外の場所にsshキーがあるJGit
pullコマンドのための私のコード(現在このようcloneコマンドでは、リンク先の記事からのコード例です):
public boolean updateData() { // git pull
SshSessionFactory sshSessionFactory = new JschConfigSessionFactory() {
@Override
protected void configure(Host arg0, Session arg1) {
//do nothing
}
};
CloneCommand cloneCommand = git.cloneRepository();
cloneCommand.setURI(ssh_url);
cloneCommand.setTransportConfigCallback(new TransportConfigCallback() {
public void configure(Transport transport) {
SshTransport sshTransport = (SshTransport) transport;
sshTransport.setSshSessionFactory(sshSessionFactory);
}
});
return true;
}
最初の「configureが」新しい「JSchConfigSessionFactory」を作成する際に必要であると考えられますしかし、私がこのようなコードを持っていても、Eclipseはそれを何度も何度も追加したいと考えています。 「セッション」のタイプエラーが発生しました。インポートする必要はありますか?
- TransportConfigCallbackがタイプTransportCommandのメソッドsetTransportConfigCallback(TransportConfigCallbackは)新しい( 引数には適用されませんタイプ
- に解決することはできません:「cloneCommand.setTransportConfigCallbackは」私は2つのエラーを取得するために TransportConfigCallbackさらに(){} "トランスポート" および "SshTransportは" タイプに解決することはできない。
sshキーのコードスニペットはどこに追加する必要がありますか(デフォルトディレクトリにはありません)。 ssh認証で「フェッチ」と「プッシュ」を使用する方法は?
アップデート2016年5月18日
「JSCH」をダウンロードしてビルド・パスに追加し、すべてのインポートエラーが解決されているように見えます。
しかし、 "git pull"と同じようにコマンドを実行するために私のsshキーを使用する方法はありますか? sshキーへのパスは、 "keyfile"というString変数に格納されます。
"log4j"出力を無効にする方法はありますか?さまざまな方法を試した後、次のコードは、現在動作しているよう
「いくつかのエラー」とは、出力またはログの詳細なスタックトレースは何ですか? – centic
最初の段落の最後に:)エラーは、クラスパスまたはこのアプリケーションを呼び出す方法に問題があることを示しています。必要なクラスがありません。 – centic
私はあなたに従うことができないようです。アプリケーションには、 "readData rd = new readData();"を使用してクラス "readData"を参照するクラス "gui"(データを表示するJFrame)があります。この "readData"クラスの中で、私は "workWithGit wwg = new workWithGit()"を使って "workWithGit"クラスのコンストラクタを呼び出します。コンストラクタ自体がリポジトリ( "git")を準備し、これらのエラーを生成するメソッド "updateData()"を呼び出します。コンストラクタ内の "updateData()"の呼び出しを削除すると、すべて正常に動作します。 – epR8GaYuh