API - GitHub JAVA

0

Cześć,

mam problem z wyświetleniem branchy z github'a - stworzyłem button który ma służyć do pobrania branchy z repo na githubie i wyświetlić je na textArea w aplikacji.

pobrałem biblioteki eclipsa dotyczące Gita, ale ciągle gdy klikam button mam błędy. Aplikacje piszę w netbeans. Załączam jeszcze kod, który aktualnie jest na buttonie.

Macie jakiś pomysł jak to obejść i uzyskać tą listę branchy ? Będę meega wdzięczny.

private static final String REMOTE_URL = "ADRES_URL_REPO";
    private void getGitActionPerformed(java.awt.event.ActionEvent evt) {                                       
       System.out.println("Listing remote repository " + REMOTE_URL);
        Collection<Ref> refs = null;
        try {
            refs = Git.lsRemoteRepository()
                    .setHeads(true)
                    .setTags(true)
                    .setRemote(REMOTE_URL)
                    .call();
        } catch (GitAPIException ex) {
            Logger.getLogger(DeploymentToolMockup.class.getName()).log(Level.SEVERE, null, ex);
        }

        refs.forEach((ref) -> {
            System.out.println("Ref: " + ref);
        });
    }   

import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.lib.Ref;

Błędy:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.eclipse.jgit.transport.TransportHttp.<clinit>(TransportHttp.java:156)
at org.eclipse.jgit.transport.Transport.<clinit>(Transport.java:121)
at org.eclipse.jgit.api.LsRemoteCommand.execute(LsRemoteCommand.java:189)
at org.eclipse.jgit.api.LsRemoteCommand.call(LsRemoteCommand.java:161)
at deploymenttool.DeploymentToolMockup.getGitActionPerformed(DeploymentToolMockup.java:244)
at deploymenttool.DeploymentToolMockup$1.actionPerformed(DeploymentToolMockup.java:65)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6632)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
at java.desktop/java.awt.Component.processEvent(Component.java:6397)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2762)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:389)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:389)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 41 more

0

java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory umiesz czytać? Masz gdzieś zależność która korzysta z api SLF4j ale nie masz dodanej biblioteki z faktyczną implementacją.

0

Dzięki za podpowiedź a wiesz może jak przekazać tekst, który pokazuje się przy deploymencie do Scroll panelu? czyli to co się wykonuje po kliknięciu tego buttona do którego kod podałem ponizej było widoczne na tym panelu a nie w konsoli ?

bo utworzyłem

     String selectedOrg = orgSelectName.getSelectedItem().toString();
       String pathDesktopBuildOrg = System.getProperty("user.home") + "/Desktop/Deployment/" + selectedOrg +"/build.xml";
       
       File buildFile = new File(pathDesktopBuildOrg);
       Project antProject = new Project();
       antProject.setUserProperty("ant.file", buildFile.getAbsolutePath());
       antProject.init();
       ProjectHelper helper = ProjectHelper.getProjectHelper();
       antProject.addReference("ant.ProjectHelper", helper);
       helper.parse(antProject, buildFile);
       String target = "deployCodeWithoutTests";
       antProject.executeTarget(target);
0

Musiałyś dodać nowy appender do loggera, tak żeby łykał te logi i puszczał do twojego panelu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1