- Alejandro Prieto
- María Paula Sánchez Macías
Maven es una herramienta que maneja proyectos de construcción, asegurando que el proyecto esté en un estado consistente. Además, gestiona automáticamente las librerías necesarias para el desarrollo del proyecto, todo basado en el concepto de Project Object Model (POM).
- Facilitar el proceso de construcción.
- Producir una construcción de sistema uniforme.
- Generar información de calidad sobre el proyecto.
- Fomentar buenas prácticas de desarrollo.
- Default
- Clean
- Site
Los plugins son herramientas que permiten extender la funcionalidad de Maven, cargando complementos que facilitan tareas como la compilación del código, la ejecución de pruebas, entre otras.
Es un lugar de almacenamiento en la nube donde se guardan las librerías y dependencias que nuestro proyecto Java puede usar. Estas dependencias se definen en el archivo pom.xml, y Maven se encarga de descargarlas automáticamente al iniciar el proyecto. De esta manera, se evita la gestión manual de librerías, la búsqueda de actualizaciones y la necesidad de compartirlas entre desarrolladores.
Para crear un archivo mvn escribimos en el terminal, el siguiente comando:
mvn archetype:generate -Dfilter=maven-archetype-quickstart

Comando:
Comando que nos permite ver la estructura formada por el proyecto que acabamos de generar
tree /f

Realizamos el cambio y se ve asi:

Archivo de Java con el "Hello World"
Compilamos el codigo:
Ejecutamos el codigo:
Aca la explicacion sobre el objetivo del parametro package:
-
Objetivo: El comando "package" sirve para crear un archivo ejecutable de un proyecto que puedas compartir o ejecutar directamente. Entre sus beneficios esta que no requiere instalación en el repositorio local, verifica que el proyecto se construye correctamente y crea un archivo distribuible
-
clean: Elimina la carpeta target y archivos compilados
-
compile: Compila el código fuente
-
test: Ejecuta las pruebas unitarias
-
install: Instala el paquete en el repositorio local
-
deploy: Copia el paquete al repositorio remoto
mvn exec:java -Dexec.args="tuParametro"
Ej:
mvn exec:java -Dexec.args="Alejo Y Mapu"
Se configura el Java para que reciba argumentos y produzca el mensaje dependiendo de su entrada

Solo recibe el primer parámetro no el segundo.
Codigo de JAVA
Resultado que nos dió al ejecutar el código
Se crea tanto el paquete edu.eci.cvds.patterns.shapes como el paquete edu.eci.cvds.patterns.shapes.concrete
Creamos una interfaz llamada Shape.java en el directorio src/main/java/edu/eci/cvds/patterns/shapes
Creamos una enumeración llamada RegularShapeType.java en el mismo directorio de antes
- 1. Triangle class
- 2. Quadrilateral class
- 3. Pentagon class
- 4. Hexagon class
Utilicé el patrón Abstract Factory para crear una fábrica que, en el futuro, podamos modificar fácilmente en caso de ser necesario. Esto se debe a que es en este punto donde se crean las instancias de las clases "Triangle", "Pentagon", "Hexagon" y "Quadrilateral". De este modo, se facilita la modificación o adición de nuevas figuras geométricas en el futuro.
En nuestro caso, consideramos que la mejor opción es el patrón Abstract Factory, ya que nos permite cambiar fácilmente esta fábrica en el futuro por otra que genere nuevas figuras o incluso otro tipo de figuras (por ejemplo, figuras 3D). Esto facilita el mantenimiento y la expansión, ya que solo sería necesario modificar la fábrica en lugar de crear fábricas separadas para cada tipo de objeto, como lo seria con el metodo factory.
Todas las funciones entregan un valor o una respuesta del programa dependiendo del argumento de entrada. En este caso, la única que da la respuesta "correcta" es Hexagon, ya que nuestra clase numeradora, ReguarShapeType, proporciona los tipos de objetos. Cuando no tenemos otros objetos disponibles y la fábrica devuelve null si el tipo no "existe", el resultado indica que la respuesta no es correcta. El caso de Pentagon fue debido a un error de mayúsculas, ya que la "p" estaba en minúsculas.
El archivo .gitignore se utiliza para configurar qué carpetas o archivos, identificados por su extensión (como .jar) o por su nombre, deben ser ignorados por Git. Esto ayuda a evitar que el repositorio se llene de archivos innecesarios o "basura" que no deberían formar parte del repositorio.


















