Tengo la intención de generalizar el uso de gradle para mis proyectos y me gustaría reutilizar el mismo archivo de compilación en todas partes. Desafortunadamente, tengo problemas para tratar de definir las propiedades mencionadas en $ subject en un solo archivo para facilitar la migración.
Esto es gradle 1.6.
Lo que he intentado, fallando en todos los intentos:
gradle.properties
: no se puede modificar el nombre (solo lectura, debe usarsettings.gradle
ay anular el nombre del proyecto raíz );{source,target}Compatibility
no tomado en cuenta;settings.gradle
: ¡{source,target}Compatibility
tampoco se tiene en cuenta!
Entonces, ¿cuál es el método correcto para lograr esto? Lo que he probado hasta ahora en gradle.properties
:
group = something
name = whatever # cannot do!
version = whatever
sourceCompatibility = whatever # not taken into account!
Y en settings.gradle
:
sourceCompatibility = "whatever"; # not taken into account!
EDITAR Bueno, el problema del "nombre" simplemente no se puede resolver; por lo demás, he usado otro archivo que aplico en el archivo de compilación. El manejo del "nombre" realmente no es correcto: /
EDITAR 2 Esto es ahora 2014 y gradle 1.12, y el problema aún no está resuelto ...
Respuestas:
gradle.properties:
theGroup=some.group theName=someName theVersion=1.0 theSourceCompatibility=1.6
settings.gradle:
build.gradle:
apply plugin: "java" group = theGroup version = theVersion sourceCompatibility = theSourceCompatibility
fuente
apply from: "other.gradle"
oapply from: "http://my.server.com/other.gradle"
. Tenga en cuenta que este último no está almacenado en caché actualmente. Para obtener el almacenamiento en caché, tendría que escribir un complemento binario .apply from:
solución; sin embargo, esto no resuelve el problema del nombre :(settings.gradle
. Sin embargo, parece un poco extraño usar un complemento para establecer el mismo nombre de proyecto en todas las compilaciones.init.gradle
en su casa de usuario (consulte la guía del usuario).Encontré la solución a un problema similar. Estoy usando Gradle 1.11 (como abril de 2014). El nombre del proyecto se puede cambiar directamente en el
settings.gradle
archivo de la siguiente manera:rootProject.name='YourNewName'
Esto se encarga de cargar al repositorio (Artifactory con su complemento para mí) con el artifactId correcto.
fuente
Configuré el nombre base del artefacto para que sea independiente del nombre del proyecto de compilación, lo que me permite lograr lo que desea:
jar { baseName "core" }
Con esta propiedad establecida, incluso si el nombre de mi proyecto es "foo", cuando ejecuto
gradle install
, el artefacto se publica con el nombre encore
lugar defoo
.fuente
Aparentemente, esto sería posible
settings.gradle
con algo como esto.rootProject.name = 'someName' gradle.rootProject { it.sourceCompatibility = '1.7' }
Recientemente recibí un aviso de que la propiedad de un proyecto se puede establecer mediante un cierre que se llamará más adelante cuando el Proyecto esté disponible.
fuente
use buildSrc con Gradle Kotlin DSL vea el ejemplo completo trabajado aquí: GitHub daggerok / spring-fu-jafu-example buildSrc / src / main / java / Globals.kt
fuente