Análisis del código fuente de Gin
project
- src
-main
- java
-resources
-tests
-java
-resources
"Grad LEIDEA" crea archivos de proyecto intelliJ y ayuda a configurar directorio de raíces de origen directorio raíz de origen de prueba. Trabajo en un departamento y espero que sea más fácil tomar la categoría unitintg2. El propósito de las pruebas es el mismo que proporcionar al proceso de compilación la capacidad de ejecutar los mismos tipos de pruebas. La estructura de proyecto Java estándar para nuestro departamento:
proyecto
- src
-main
- java
-recursos
-pruebas
-comunes
- java
-unidades
- java p >
-resources
- intg
- java
-resources
Estructura de directorios Tengo dos problemas que resolver:
1. ¿Dónde ejecutar la prueba IntegrationTestUnit?
2. ¿Cómo garantizar que sea necesario restablecer 'Grad Le Idea'? La fuente de prueba Rootgradle tiene la capacidad de reconocer nuevas estructuras de código.
Cómo escribir un complemento de Gradle
Idioma:
JavaGroovyScala recomienda Groovy. Después de todo, Gradle esencialmente dice que es más apropiado usar Groovy para escribir DSL.
Tipo de inyección:
Gradle admite tres formas de inyección de complementos personalizados:
1. Escriba el script de compilación directamente desde el código fuente del complemento.
2.El código fuente del complemento está escrito en el directorio raíz del proyecto dir/buildrsrc/src/main/groovy.
3. Escriba el código fuente del complemento en un proyecto separado e inyéctelo en el proyecto en forma de dependencia jar.
Creo que todos quieren escribir un complemento por sí mismos, configurar un complemento público para el proyecto o escribir directamente un script para el código del complemento y personalizar el complemento. Creo que hay que inyectarlo en un frasco aparte.
Escribir complementos de estructura de proyecto:
No es fácil escribir complementos para Gradle. Primero, agregue las dependencias del proyecto. Utilizo Groovy para escribir complementos que agregan dependencias locales de Groovy.
Código Graer
Complemento de aplicación: "groovy"
Dependencias {
Compilar gradleApi()
Compilar localGroovy()
}
Para escribir el código de implementación del complemento, es necesario implementar la interfaz del complemento, lo que significa que necesito implementar el código para hacer dos cosas para personalizar la estructura del código del proyecto. En segundo lugar, agregue la tarea de prueba de integración, que ejecuta la *Prueba de integración. clase y ejecute la unidad TestIntegrationTest durante la etapa de canalización de compilación.
Código Groovy
Importar org.gradle.api.Plugin
Importar org.gradle.api.Project
Importar org.grad le . API . testing . test
Complemento de implementación de ProjectStructurePlugin {
@Override
Aplicación no válida (proyecto de proyecto){
project.logger.info "Configurar la estructura del proyecto para project.name"
project.configurations {
integrationTestCompile {se extiende desde la compilación de prueba}
integrationTestRuntime { se extiende desde IntegrationTestCompile, testRuntime }
}
Conjunto de recursos de configuración (proyecto)
addIntegrationTestTask (proyecto)
}
Private void addIntegrationTestTask(proyecto proyecto){
Prueba intgTest = project.getTasks().
create("integrationTest ", test . class);
int gtest . clases de prueba dir = conjunto de fuentes de integración . * */* prueba de integración. clase "]
intgTest.inputs.dir 'src '
int gtest. salidas. dir proyecto. conjuntos de fuentes. prueba de integración. salida. clases dir
proyecto. verificación. depende del proyecto. prueba de integración
Depende del proyecto
}
Configuración de vacío privado(proyecto de proyecto){.
project.sourceSets {
Prueba{
java
srcDir 'src/test/unit/java '
srcDir 'src/test/common/java '
}
Recursos{
src dir 'src/test/unit/resources'
}
}
Prueba de integración{
java
srcDir 'src/test/intg/java ' p>
srcDir 'src/test/common/java '
}
Recursos{
srcDir 'src/test/intg/resources '
}
compileClasspath = proyecto. conjuntos de origen. principal. proyecto de salida. prueba de configuración. compilar el proyecto de ruta de clase s. integración testruntime
}
}
}
}
Luego. Cree un archivo en el directorio src/main/resources/meta-INF/grad le-Plugins del proyecto: . Propiedad, que especifica la clase de implementación del complemento:
Código Java
implementation-class = com.xianlinbox plugins projectstructureplugin
Este proyecto utiliza este complemento. -en.
Primero, se necesita el script build.gradle para introducir el formato de archivo de dependencia del paquete Pluginjar. Se recomienda publicar el paquete jar e inyectar el formulario de dependencia Maven de la biblioteca Maven.
Este ejemplo utiliza esta dependencia de archivo:
Código Groovy
Build Script {
Dependencias {
Árbol de archivos Classpath (Directorio: 'libs ', contiene: '*.jars')
}
}
Inyecta y escribe complementos. Tenga en cuenta que este complemento debe ser utilizado por el complemento de Java. Utiliza la propiedad SourceSets. El complemento se importa a:
Groovy Code
Aplicar complemento: "java"
Aplicar complemento: "Project-Structure"
El complemento ejecuta UnitTestIntrgrationTest mediante "prueba de gradle" y "prueba de integración de gradle".
Para resolver el problema de configurar la raíz de la fuente de prueba usted mismo, debe aumentar la capacidad de identificar la raíz de la fuente de prueba a través de la tarea build.gradleideaModule, es decir:
Groovy código
Complemento de aplicación: "idea"
...
idea {
Módulo{
testSourceDirs = archivo(' src/test/ intg/Java ')
testSourceDirs = archivo(' src/test/intg/resources ')
}
}
i Escriba un complemento para configurar la estructura del proyecto:
Código Groovy
......
compileClasspath = proyecto. conjuntos de fuentes. principal. proyecto de salida. prueba de configuración de salida. . p>project.idea {
Módulo {
testSourceDirs = testSourceDirs nuevo archivo (' src/test/intg/java') nuevo archivo (' src/test/intg/resources ' )
}
}
1. Instalación
La instalación de Gradle de Maven requiere carga () == "descompresión == "Configuración del entorno variables (gradle_home; PATH) Configuración de variables de entorno. Recuerde utilizar el comando fuente para que las nuevas variables de entorno estén disponibles para configurar la función. Línea de comando gradle -v "Verifique si la función está instalada.
2.Gradle compila proyectos java estilo Maven.
Primero, cree un "build.gradle" en la raíz del proyecto directorio ". Para compilar un proyecto java, necesita usar el complemento gradlejava.
Código maravilloso
Complemento de aplicación: "java"
Para integrar la función maven, debe agregar el complemento maven
Código Groovy
Aplicar el complemento: "maven" [
Luego configure el estilo del repositorio del proyecto. .
Código Groovy
Repositorio {
maven central();
}
Este ejemplo utiliza el valor predeterminado repositorio central de maven y desea utilizar la configuración general de ese repositorio.
Código Groovy
def localMavenRepo = 'File://' new File(system . getproperty(' user . home '), ' . m2/repository '). Ruta absoluta
Repositorio {
//Utilice la ubicación del repositorio local de Maven. Si solo queremos instalar, no necesitamos este
// un artefacto, pero si queremos usar la dependencia local, sí lo necesitamos
// el repositorio.
URL del repositorio de maven: localMavenRepo
mavenCentral()
}
El proyecto de reconfiguración depende de la tercera plantilla de configuración de la biblioteca:
Código Groovy
Dependencias {
Grupo de compilación: "", nombre: "", versión: ""
} p>
Por ejemplo, supongamos que el proyecto depende de la versión 4.10 de la configuración de junit.
Código Groovy
Grupo de compilación: "junit", nombre: "junit", versión: "4.10"
Además, las dependencias se abrevian como p>
Código Groovy
Compilar "::"
Ejemplo
Código Groovy
Compilar "junit:junit:4.10 "
Biblioteca de lanzamiento del proyecto Hezi
Código Groovy
Subir archivo {
Repositorio{
mavenDeployer {
Repositorio (URL: "file://localhost/tmp/my repo/")
}
}