Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

248
Vistas
¿Deberían los proyectos Java de varios módulos tener un proyecto Gradle múltiple?

Estoy empezando a entrar en la modularidad de Java y me pregunto si un proyecto de varios módulos debería dividirse en proyectos de sub-Gradle. Si este es o no el caso, ¿cómo sería la estructura del directorio? He visto algunos ejemplos contradictorios de estructuras para proyectos que no son de Gradle, como:

 reverse/dns/module/module-info.java ./packages.. reverse/dns/module/module-info.java ./packages..

y

 reverse.dns.module/ module-info.java // module-info is in the root directory and its name corresponds to parent folder reverse/dns/module/packages..

¿Se vería algo como esto?

Realmente me gustaría saber cómo estructurar un proyecto de Gradle si tuviera dos módulos. Tengo la intención de usar jlink también para crear imágenes si eso entra en conflicto con algo.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Hice una variación de esta pregunta:

Estoy usando gradle y el complemento jlink y tengo una aplicación que quiero dividir en dos módulos, ¿se supone que los módulos están en el directorio src/main/java o deberían refactorizarse a src/mod1/ y src/mod2? ? Otra pregunta que surge de esto es la prueba y dónde colocar las clases de prueba junit. Me pregunto sobre todo acerca de la estructura de directorios de todo esto. ¡Gracias!

a Nick Maiorano y recibió esta respuesta:

Para su primera pregunta, el compilador de Java y el tiempo de ejecución no tienen opinión al respecto. Admiten cualquier tipo de estructura de directorios. Pero los editores de Java como Intellij y Eclipse lo obligan a tener raíces fuente separadas para cada módulo. Si planea tener diferentes equipos manteniendo sus propios módulos, entonces tendrá que tener raíces separadas y usaría sus módulos como una biblioteca de terceros con dependencias de módulos a través de un archivo jar o jmod. De lo contrario, podría tener diferentes módulos en una sola fuente, pero estaría luchando contra el soporte del módulo de Eclipse/Intellij (pero es posible).

Su segunda pregunta es mucho más fácil: las clases de prueba unitaria deben estar en el mismo módulo que sus sujetos de prueba. Deben tener acceso a todas las clases del módulo, por lo que tiene sentido que sean parte del módulo. Deben estar en un directorio separado pero con el mismo nombre de paquete que sus sujetos de prueba (para que no se les bloquee el acceso a los métodos privados del paquete).

Esto se ajusta a la forma en que decidí diseñar la aplicación al tener dos subproyectos de Gradle separados, cada uno de ellos con su propio directorio src/main/java. Mi estructura de directorio final se ve así:

 wit-core/ ├── build.gradle ├── core.vim └── src ├── main │  └── java │  ├── dev │  │  └── joshpetit │  │  └── wit │  │  └── core │  │  ├── base │  │  ├── interpret │  │  └── model │  └── module-info.java └── test └── java └── dev └── joshpetit └── wit └── core ├── base └── utils wit-gui/ ├── build.gradle ├── Session.vim └── src ├── main │  └── java │  ├── dev │  │  └── joshpetit │  │  └── wit │  │  └── gui │  │  └── launcher │  └── module-info.java └── test └── java └── dev └── joshpetit └── wit └── gui └── launcer

¡Muchas gracias a las personas que analizaron esta pregunta conmigo!

Si alguien más todavía se pregunta sobre esto, recomiendo seguir los consejos de @FranciscoMatea y hacer referencia a la estructura del proyecto de junit .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda