2016-07-11 1 views
6

В небольшом наборе проектов sbt нам понадобилась компиляция protobuf/grpc, и, поскольку только град имеет нормальную поддержку, мы использовали его для выполнения связанных с protobuf задач.Gradle отключить все инкрементные компиляции и параллельные сборки

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

Я хочу отключить всевозможные инкубационные функции и инкрементные компиляции, я хочу, чтобы эта вещь была детерминированной.

Для этого я попытался

compileJava { 
    //enable compilation in a separate daemon process 
    options.fork = false 

    //enable incremental compilation 
    options.incremental = false 
} 

но gralde все равно будет давать выход, как это (по-видимому, игнорируя эти флаги)

Parallel execution is an incubating feature. 
Incremental java compilation is an incubating feature. 
:deleteGeneratedSource 
:clean 
:extractIncludeProto 
:extractProto UP-TO-DATE 
:generateProto 
:recompileProto 

Так как же отключить параллельное выполнение и инкрементный Java компиляции?

+0

Вы когда-нибудь это выясняли? Это заставляет мою сборку принимать навсегда. –

+0

Я избавился от градиента и sbt, оба делали жизнь более сложной ... maven скалывает ее, не беспокоя вас слишком много, да, требуется больше времени на сборку, но intellij не полагается на maven или sbt или gradle, чтобы делать инкрементные быстрые комбинации всех сам по себе ... так что выгоды от других инструментов сборки сомнительны ... при разработке вам не нужно компилировать с использованием mvn в любом случае ... для сложных скриптов у нас мало функций kotlin, которые выполняют всю работу, эти предполагаемые инструменты построения делать с гораздо меньшей эффективностью и большей гибкостью ... – vach

ответ

1

Попробуйте добавить org.gradle.daemon=false и org.gradle.parallel=false в файл gradle.properties, он может помочь вам в вашей проблеме.