multi create gradle multi-project

create - settings gradle module



Gradle excluye un subproyecto específico de la compilación completa (4)

Hasta donde sé, no es posible desactivar o excluir el proyecto después de que se haya incluido en settings.gradle . Por lo tanto, tal vez se haga de la siguiente manera en settings.gradle :

include ''p1'', ''p2'', ''p3'' if (any_condition_here) { include ''functional-tests'' }

Se requerirá una comprobación adicional en build.gradle - para configurar el proyecto si está incluido.

Lo que también me viene a la cabeza es -a cambio de línea de comando, mira aquí . Tal vez podría ser útil de alguna manera.


En nuestro proyecto Gradle, queremos agregar un nuevo módulo para pruebas funcionales que necesita poder acceder a dependencias de otros subproyectos pero que aún no se puede ejecutar como parte de la compilación completa del proyecto. Si intento esto, aún se construye:

def javaProjects() { return subprojects.findAll { it.name != ''functional-tests'' } } configure(javaProjects()) { ... } project('':functional-tests'') { .... }

El resultado es el mismo incluso si muevo la compilación de pruebas funcionales a un archivo separado de build.gradle propio. ¿Alguien puede señalar cómo lograr esto?


Encontré una mejor solución para excluir que las pruebas funcionales se ejecuten en la línea de comandos o a través del archivo de compilación.

Por ejemplo, para ejecutar todas las pruebas excepto las pruebas funcionales, ejecute:

$ gradle check -x :functional-tests:check

Luego, al construir el proyecto, puede permitir que el subproyecto se construya pero excluya la ejecución de sus pruebas.

$ gradle clean assemble -x :functional-tests:check

Una mejor opción es desactivar las pruebas funcionales en su archivo de construcción a menos que se establezca una propiedad. Por ejemplo, en tu build.gradle deberías agregar:

project(''functional-tests'') { test { onlyIf { project.hasProperty("functionalTests") } } }

De esta forma, las pruebas funcionales siempre se saltan a menos que especifique una propiedad de compilación específica:

$ gradle check $ gradle -PfunctionalTests check

¡Espero que ayude!


No puede excluir el subproyecto, pero puede deshabilitar las tareas de subproyecto:

gradle.taskGraph.whenReady { gradle.taskGraph.allTasks.each { if(it.project == project) { it.onlyIf { false } } } }


Lo hago así:

//for all sub projects subprojects { if (it.name != ''project name'') { //do something } }

de esta manera, puedo excluir algún proyecto especial en subprojects .

también puedes usarlo en allprojects project o project .