java - than - maven-compiler-plugin version
¿Cómo establecer el nombre/grupo/versión del proyecto, más la compatibilidad de{source, target} en el mismo archivo? (4)
Tengo la intención de generalizar el uso de Gradle para mis proyectos y me gustaría volver a utilizar 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, tiene que usar unsettings.gradle
y anular el nombre del proyecto raíz !);{source,target}Compatibility
no tomada en cuenta; -
settings.gradle
:{source,target}Compatibility
no se tuvo en cuenta tampoco!
Entonces, ¿cuál es el método correcto para lograr esto? Lo que he intentado 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 Bien, el problema del "nombre" simplemente no puede ser resuelto; 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 Ahora es 2014 y gradle 1.12, y el problema aún no está resuelto ...
Aparentemente esto sería posible en settings.gradle
con algo como esto.
rootProject.name = ''someName''
gradle.rootProject {
it.sourceCompatibility = ''1.7''
}
Hace poco recibí consejos de que una propiedad del proyecto se puede establecer mediante el uso de un cierre que se llamará más tarde cuando el proyecto esté disponible.
Encontré la solución a un problema similar. Estoy usando Gradle 1.11 (en abril de 2014). El nombre del proyecto se puede cambiar directamente en el archivo settings.gradle
la siguiente manera:
rootProject.name=''YourNewName''
Esto se encarga de subir al repositorio (Artifactory w / its plugin para mí) con el artifactId correcto.
Establecí el artefacto baseName para que sea independiente del nombre del proyecto de compilación, lo que me permite lograr lo que desea:
jar {
baseName "core"
}
Con este conjunto de propiedades, incluso si el nombre de mi proyecto es "foo", cuando gradle install
, el artefacto se publica con el nombre core
lugar de foo
.
gradle.properties:
theGroup=some.group
theName=someName
theVersion=1.0
theSourceCompatibility=1.6
settings.gradle:
rootProject.name = theName
build.gradle:
apply plugin: "java"
group = theGroup
version = theVersion
sourceCompatibility = theSourceCompatibility