Сбой сборки gradle, исключение не выполнено для задачи ': compileJava'.проблема с библиотекой byteBuddy - PullRequest
1 голос
/ 14 мая 2019

Здравствуйте и спасибо заранее за любую помощь.

Во-первых, я знаю, что другие люди уже сталкивались с этой проблемой, и я пробовал решения во всех их обсуждениях, и никто из них не работал для меня.

По сути, я пытаюсь настроить «сборку gradle» в папке проекта для проекта java eclipse, чтобы я мог начать кодировать агента. У меня возникает проблема с получением программой распознавания byteBuddy, которая уже находится в моей папке lib и добавлена ​​в мои зависимости в моем файле gradle.

Я впервые работаю с gradle и byteBuddy.

Когда я пытаюсь построить сборку в папке проекта, он говорит следующее:

Не удалось выполнить исключение для задачи ': compileJava'.

Когда я использую --info, он предоставил мне более подробную информацию, сказав:

Все входные файлы устарели для добавочной задачи ': compileJava'. Требуется полная перекомпиляция, поскольку информация о дополнительных изменениях недоступна.

Продолжает говорить:

.... путь .... java \ main.java: 4: ошибка: пакет net.bytebuddy.agent не существует import net.bytebuddy.agent.ByteBuddyAgent;

Я провел множество исследований этой проблемы и видел, что это может быть как несовпадение версий java с gradle, неверные настройки JAVA_HOME, и почему программа не берет jar-файлы, которые явно находятся в моем библиотека.

Я не знаю, связана ли моя проблема с вышеупомянутым, но я еще не нашел других потенциальных проблем, связанных с моей проблемой.

Я использую: Затмение Java, Java 1.8.0_212 (мой JAVA_HOME настроен на это), Gradle-5.4.1, библиотека byteBuddy 1.2.12, библиотека asm-7.1 (которая, как говорят, необходима для запуска byteBuddy), и библиотека jackcess 2.1.11 (я не уверен, что это связано с проблемой, но она возникла в сборке gradle до того, как я попробовал bytebuddy с той же проблемой)

РЕДАКТИРОВАТЬ: Я использую Windows 7 Professional

Вот мой основной файл, который упоминался в сообщении об ошибке выше. В приведенном выше коде я пытаюсь заставить закомментированную область работать, но Eclipse не распознает импорт ByteBuddy:

import javax.swing.JFrame;

import net.bytebuddy.ByteBuddy;
import net.bytebuddy.agent.ByteBuddyAgent;
import net.bytebuddy.implementation.FixedValue;
import net.bytebuddy.matcher.ElementMatchers;


public class main 
{
    public static void main(String[] args)
    {
        mainFrame newBegining = new mainFrame();
        newBegining.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        newBegining.setLocationRelativeTo(null);
        newBegining.setVisible(true);
    }

    /*Class<?> dynamicType = new ByteBuddy()
              .subclass(Object.class)
              .method(ElementMatchers.named("toString"))
              .intercept(FixedValue.value("Hello World!"))
              .make()
              .load(getClass().getClassLoader())
              .getLoaded();

            assertThat(dynamicType.newInstance().toString(), is("Hello World!"));*/
}

Вот соответствующие фрагменты из моего файла Gradle ниже (я думаю, что они могут быть основаны на том, что я редактировал их в попытке исправить проблему, и они были упомянуты в других потенциальных решениях):

repositories {
    jcenter()
    flatDir { dirs 'lib' }
}

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.21'
    compile 'joda-time:joda-time:2.1'
    compile 'net.bytebuddy:byte-buddy:1.9.12'
    testCompile 'junit:junit:4.12'
}

compileJava {
    options.debug = true
}

jar {
    manifest {
        attributes(
            'Main-Class': 'main',
            'Premain-Class': 'searchAgent.searchAgent',
            'Agent-Class': 'searchAgent.searchAgent',
            'Can-Redefine-Classes': 'true',
            'Can-Retransform-Classes': 'true',
        )
        from configurations.runtime.collect { zipTree(it) }
    }

Насколько я понимаю, я думаю, что проблема связана со способностью gradle распознавать мою библиотеку byteBuddy, но я не совсем уверен.

Мне кажется, что ответ - что-то маленькое, но я не смог его закрепить.

...