2017-02-23 62 views
0

Контекст: В настоящее время я работаю над инструментом исследования, который должен быть полезен для API Travis для получения информации о сборках из тысяч проектов на Github. Я хочу найти лучший способ узнать, используют ли проекты Maven или Gradle в качестве инструмента построения.Как отличить maven и gradle от журналов Travis с помощью regexp

я получить журналы из Travis Сборки и разобрать их, потому что теперь я использую следующий шаблон для мавена:

^(-------------------------------------------------------|\[INFO\] Reactor Summary:)$ 

и это один для Gradle:

^(:[\w-]+)?:test[\w-]*$ 

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

Редактировать: меня интересуют проекты, которые запускают тесты, поэтому я начал с этого регулярного выражения.

+0

является '' INFO' test' и 'Reactor Summary' фиксированной? – m87

+0

Во-первых, я должен уточнить, что меня больше всего интересует проект, который запускает тесты. И, откровенно говоря, я в основном продвигался к этим регулярным выражениям: большинство журналов maven, с которыми я столкнулся, имеют строку [INFO] Reactor Summary, за исключением случаев, когда вы запускаете maven в тихом режиме: тогда я могу поймать некоторую строку тире при запуске тестов. И для градиента большая часть проекта имеет несколько тестовых заданий с префиксом «тест». –

+0

Почему синтаксический анализ журналов ... почему бы не разделить проекты? – khmarbaise

ответ

0

Это может быть полезным для вас ... проект, который перешел от мавена к Gradle

Может быть, вы могли бы иметь регулярное выражение, которое говорит

  • Если «mvn» появляется в журналах до «gradle» или «gradlew», то это maven Проект
  • Если "Gradle" или "gradlew" появляется перед "МВН", то это Gradle проект
+0

Спасибо, что указали это, но проблема в том, что какой-то проект, который я проверяю, может иметь «gradle» или «mvn» в их имени: поэтому гораздо сложнее использовать regexp для этих команд ... –

+0

Я думаю, что это будет гадать, что бы вы ни делали. Если есть файл 'build.gradle' и нет' pom.xml', я думаю, что можно с уверенностью предположить, что это градиентная сборка (и наоборот). –

+0

ok, но чтобы обнаружить, что мне нужно использовать API GH или клонировать проект, и я не хочу делать это для тысяч проектов ... Я согласен, что это предположение, я просто хочу его оптимизировать :) –

Смежные вопросы