Buscar..


Gradle Wrapper y Git

Como se discutió en la introducción, la funcionalidad de envoltura de gradle funciona porque se descarga un archivo en el proyecto que se utilizará cuando se gradlew comando gradlew . Sin embargo, es posible que esto no se gradlew y después de la próxima vez que se retire el proyecto, gradlew no se ejecutará con el error:

Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain

Esto se debe a que su .gitignore probablemente incluirá *jar para proyectos Java. Cuando se inicializó el contenedor de gradle, se copia en el archivo gradle/wrapper/gradle-wrapper.jar . Por lo tanto, es necesario agregarlo al índice git y confirmarlo. Hacerlo con

git add -f gradle/wrapper/gradle-wrapper.jar
git ci

Con el -f ser de forzarlo.

Introducción a Gradle Wrapper

Gradle tiene la capacidad de agregar una envoltura a los proyectos. Esta envoltura alivia la necesidad de que todos los usuarios o sistemas de integración continua tengan instalado Gradle. También evita los problemas de versión en los que existe cierta incompatibilidad entre la versión que usa el proyecto y la que los usuarios han instalado. Lo hace instalando una versión de gradle localmente en el proyecto.

Los usuarios del proyecto simplemente ejecutan:

> ./gradlew <task> # on *Nix or MacOSX
> gradlew <task>   # on Windows

Para configurar un proyecto para usar un contenedor, los desarrolladores:

  1. Ejecutar:
gradle wrapper [--gradle-version 2.0]

Donde --gradle-version X es opcional y si no se proporciona (o la tarea de envoltura no se incluye, como se muestra a continuación), la versión utilizada es la versión de gradle que se está utilizando.

  1. Para forzar al proyecto a usar una versión específica, agregue lo siguiente a build.gradle :
task wrapper(type: Wrapper) {
    gradleVersion = '2.0'
}

Cuando se gradle wrapper comando gradle wrapper crea los archivos:

the_project/
  gradlew
  gradlew.bat
  gradle/wrapper/
    gradle-wrapper.jar
    gradle-wrapper.properties

La documentación oficial sobre esta función se encuentra en https://docs.gradle.org/current/userguide/gradle_wrapper.html .

Utilice Gradle servido localmente en el envoltorio Gradle

Si desea mantener una copia local del Gradle y dejar que el Wrapper lo use en las compilaciones, puede establecer el distributionUrl apuntando a su copia en la tarea del wrapper :

task wrapper(type: Wrapper) {
    gradleVersion = '2.0'
    distributionUrl = "http\://server/dadada/gradle-${gradleVersion}-bin.zip"
}

después de ejecutar gradle wrapper , se crea el script de shell gradlew y gradle/wrapper/gradle-wrapper.properties se configura para usar la URL proporcionada para descargar el Gradle.

Usando el Gradle Wrapper detrás de un proxy

La primera vez que un usuario ejecuta un proyecto de gradlew , debe darse cuenta de que hará dos cosas clave:

  1. Compruebe si la versión del gradle utilizada por el contenedor ya está en ~ / .gradle / wrapper / dists
  2. Si no, descarga el archivo de la versión desde internet.

Si se encuentra en un entorno que requiere que todo el tráfico externo pase por un proxy, el paso dos fallará (a menos que sea un entorno de proxy transparente). Como resultado, debe asegurarse de que tiene configurados los parámetros de proxy JVM .

Por ejemplo, si tiene una configuración de proxy básica sin autenticación, simplemente configure la variable de entorno JAVA_OPTS o GRADLE_OPTS con:

-Dhttps.proxyPort=<proxy_port> -Dhttps.proxyHost=<hostname>

Así que un ejemplo completo en Windows sería:

set JAVA_OPTS=-Dhttps.proxyPort=8080 -Dhttps.proxyHost=myproxy.mycompany.com

Sin embargo, si su entorno también requiere autenticación, también querrá revisar sus otras opciones en https://docs.oracle.com/javase/8/docs/api/java/net/doc-files/net-properties. html .

NOTA: Esta configuración de proxy es adicional a cualquier configuración de proxy para el acceso al repositorio de dependencias.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow