Легковесная библиотека для Warning сообщений от javac через аннотацию

    Java разработчикам привет.

    Делюсь легковесной (3kb) библиотекой, единственная и основная задача которой — кидать ворнинги от Java компилятора.

    Использование очень простое: пишите аннотацию Warning(«Reason text here») и при компиляции будет выдан ворнинг (сборка при этом не останавливается).

    // some code...
    
    @Warning("Refactor as soon as possible please")
    public void someCodeWhichYouNeedAtTheMomentButYouWantToRefactorItLater() {
        // bad stuff going on here...
    }
    

    Использован Annotation Processor API.

    Гитхаб: https://github.com/pushtorefresh/javac-warning-annotation (опубликовано в mavenCentral)

    Надеюсь, будет полезно.

    P.S. В большинстве случаев лучше заводить задачу в тасктрекере вместо использования данной аннотации, но для некоторых вещей такой вариант вполне уместен.
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 3

      0
      На каждый TODO таск не напишешь, а вот варнинги при сборке мозолить глаза будут. Так что думаю применение найдется.
        0
        Именно это и было в голове, когда делал. TODO в коде стараюсь не писать, по простой причине: если у команды нет привычки смотреть их в IDE — их не видно, поэтому сразу завожу таску в тасктрекере, а вот всякие «переделать немного» и подобные решил сделать на компайл уровне.

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

        Скриншот



        И еще: советую проверить ваш CI, возможно он поддерживает обработку ворнингов от javac (для Jenkins есть плагины), можно делать различные хуки. В любом случае, текст ворнинга начинается с "@Warning", можно настроить его парсинг и прерывать сборку master ветки, если она содержит ворнинги, например (тоже очень полезно, имхо).
        0
        Доп инфо: со Scala из коробки, похоже, не заработает (нужен Annotation Processing), с Kotlin судя по всему, должно работать, буду рад, если кто-нибудь проверит и отпишется

        Only users with full accounts can post comments. Log in, please.