Skip to content

Commit e182664

Browse files
committed
Added Archetype related tutorials
1 parent 9ebac4b commit e182664

File tree

7 files changed

+283
-5
lines changed

7 files changed

+283
-5
lines changed
17.4 KB
Binary file not shown.

Writerside/t.tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,9 @@
2525
<toc-element toc-title="IntelliJ">
2626
<toc-element topic="Install-IntelliJ.md"/>
2727
</toc-element>
28+
<toc-element toc-title="Arquetipo">
29+
<toc-element topic="Install-Archetype.md"/>
30+
<toc-element topic="New-Project-with-Archetype.md"/>
31+
<toc-element topic="Project-Execution.md"/>
32+
</toc-element>
2833
</instance-profile>
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Instalación del arquetipo
2+
3+
Un **arquetipo** es un proyecto de Maven que permite generar proyectos a partir de un template.
4+
5+
1. Descargar <resource src="pod-grpc-archetype.zip"/>, **descomprimirlo** y **pararse sobre el directorio recién creado**
6+
7+
<tabs>
8+
<tab id="macos-unzip" title="macOS">
9+
<code-block lang="console">
10+
user@Users-MacBook-Pro ~ % unzip pod-grpc-archetype.zip
11+
...
12+
user@Users-MacBook-Pro ~ % cd pod-archetype/
13+
</code-block>
14+
</tab>
15+
<tab id="linux-unzip" title="Linux">
16+
<code-block lang="console">
17+
user@host:~$ unzip pod-grpc-archetype.zip
18+
...
19+
user@host:~$ cd pod-archetype/
20+
</code-block>
21+
</tab>
22+
<tab id="windows-unzip" title="Windows">
23+
<p>Luego de finalizada la descarga ubicar el archivo correspondiente.</p>
24+
<p>En el explorador de archivos, usando el menú contextual sobre la descarga elegir la opción Extraer todo...</p>
25+
<p>Elegir un path donde deseemos descomprimir el arquetipo de Maven. En este caso utilizaremos</p>
26+
<shortcut>C:\Maven</shortcut>
27+
<p>Se creará la carpeta necesaria.</p>
28+
<img src="windows-maven-0.png" alt="Windows 0" width="600"/>
29+
<p>En el explorador de archivos, usando el menú contextual sobre el directorio pod-archetype recién creado la opción Abrir en Terminal</p>
30+
<p>La ventana de la terminal debería ubicada en el siguiente directorio</p>
31+
<shortcut>C:\Maven\pod-archetype</shortcut>
32+
</tab>
33+
</tabs>
34+
35+
2. Desde la consola, sobre el directorio recién descomprimido, correr el siguiente comando
36+
37+
<code-block lang="console">mvn clean install</code-block>
38+
39+
Debería obtener una salida similar a la siguiente
40+
41+
<code-block lang="console">
42+
[INFO] --- archetype:2.4:update-local-catalog (default-update-local-catalog) @ pod-mp-grpc-archetype ---
43+
[INFO] ------------------------------------------------------------------------
44+
[INFO] BUILD SUCCESS
45+
[INFO] ------------------------------------------------------------------------
46+
[INFO] Total time: 14.804 s
47+
[INFO] Finished at: 2025-01-15T16:08:43-03:00
48+
[INFO] ------------------------------------------------------------------------
49+
</code-block>
50+
51+
3. Para actualizar el índice local con información sobre los arquetipos disponibles correr el siguiente comando
52+
53+
<code-block lang="console">mvn archetype:crawl</code-block>
54+
55+
<note>
56+
<p>
57+
Listo! Ya cuenta con el arquetipo instalado correctamente.
58+
</p>
59+
</note>

Writerside/topics/Install-Java-on-Linux.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,12 @@ Abrir el archivo <shortcut>bash.bashrc</shortcut>
4141

4242
<code-block lang="console">sudo vim /etc/bash.bashrc</code-block>
4343

44-
Agregar un renglón al final del archivo con el siguiente comando
44+
Agregar dos renglones al final del archivo con los siguientes comandos:
4545

46-
<code-block lang="console">source $(openjdk)</code-block>
46+
<code-block lang="console">
47+
source $(openjdk)
48+
export PATH=$JAVA_HOME/bin:$PATH
49+
</code-block>
4750

4851
Guardar los cambios del archivo.
4952

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# Nuevo proyecto
2+
3+
Para crear un **nuevo proyecto** utilizando un arquetipo.
4+
5+
<warning>
6+
<p>
7+
Asegurarse de estar ubicado en un <b>directorio distinto al del pod-archetype/</b>
8+
</p>
9+
</warning>
10+
11+
1. Ejecutar el siguiente comando
12+
13+
<code-block lang="console">mvn archetype:generate -DarchetypeCatalog=local
14+
</code-block>
15+
16+
2. Aparecerá un menú de opciones. Escribir la opción correspondiente al arquetipo de <shortcut>pod</shortcut>
17+
y presionar <shortcut>Enter</shortcut>
18+
19+
En este caso es la opción <shortcut>1</shortcut>.
20+
21+
<code-block lang="console">
22+
[INFO] Generating project in Interactive mode
23+
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
24+
Choose archetype:
25+
1: local -> ar.edu.itba.pod:pod-mp-grpc-archetype (pod)
26+
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): :
27+
</code-block>
28+
29+
3. Completar los valores pedidos de groupId, artifactId, version y package y por último presionar <shortcut>Y</shortcut>.
30+
31+
Para version y package puede presionar <shortcut>Enter</shortcut> y así tomar el valor por defecto.
32+
33+
<code-block lang="console">
34+
Define value for property 'groupId': ar.edu.itba.pod
35+
Define value for property 'artifactId': sample-project
36+
Define value for property 'version' 1.0-SNAPSHOT:
37+
Define value for property 'package' ar.edu.itba.pod:
38+
Confirm properties configuration:
39+
groupId: ar.edu.itba.pod
40+
artifactId: sample-project
41+
version: 1.0-SNAPSHOT
42+
package: ar.edu.itba.pod
43+
Y: Y
44+
</code-block>
45+
46+
4. Debe ver en la salida el **Build Sucess** indicando la ubicación de los pom.xml recién creados. Por ejemplo:
47+
48+
<code-block lang="console">
49+
[INFO] Parent element not overwritten in /Users/foo/sample-project/api/pom.xml
50+
[INFO] Parent element not overwritten in /Users/foo/sample-project/server/pom.xml
51+
[INFO] Parent element not overwritten in /Users/foo/sample-project/client/pom.xml
52+
[INFO] Project created from Archetype in dir: /Users/foo/sample-project
53+
[INFO] ------------------------------------------------------------------------
54+
[INFO] BUILD SUCCESS
55+
[INFO] ------------------------------------------------------------------------
56+
[INFO] Total time: 04:10 min
57+
[INFO] Finished at: 2025-01-15T16:42:30-03:00
58+
[INFO] ------------------------------------------------------------------------
59+
</code-block>
60+
61+
5. Ubicarse en el directorio recién creado (en este caso <code>sample-project</code>)
62+
y correr el comando <code>install</code> sobre el pom padre.
63+
64+
<tabs>
65+
<tab id="macos-new-project" title="macOS">
66+
<code-block lang="console">
67+
user@Users-MacBook-Pro ~ % cd sample-project
68+
user@Users-MacBook-Pro sample-project % mvn clean install
69+
</code-block>
70+
</tab>
71+
<tab id="linux-new-project" title="Linux">
72+
<code-block lang="console">
73+
user@host:~$ cd sample-project/
74+
user@host:~/sample-project$ mvn clean install
75+
</code-block>
76+
</tab>
77+
<tab id="windows-new-project" title="Windows">
78+
<code-block lang="console">
79+
C:\Users\Foo\Desktop>cd sample-project
80+
C:\Users\Foo\Desktop\sample-project>mvn clean install
81+
</code-block>
82+
</tab>
83+
</tabs>
84+
85+
Debería obtener una salida similar a la siguiente:
86+
87+
<code-block lang="console">
88+
[INFO] ------------------------------------------------------------------------
89+
[INFO] Reactor Summary for sample-project-parent 1.0-SNAPSHOT:
90+
[INFO]
91+
[INFO] sample-project-parent .............................. SUCCESS [ 1.173 s]
92+
[INFO] sample-project-api ................................. SUCCESS [ 26.145 s]
93+
[INFO] sample-project-server .............................. SUCCESS [ 2.119 s]
94+
[INFO] sample-project-client .............................. SUCCESS [ 0.546 s]
95+
[INFO] ------------------------------------------------------------------------
96+
[INFO] BUILD SUCCESS
97+
[INFO] ------------------------------------------------------------------------
98+
[INFO] Total time: 34.575 s
99+
[INFO] Finished at: 2025-01-15T16:46:43-03:00
100+
[INFO] ------------------------------------------------------------------------
101+
</code-block>
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# Ejecución de server y client
2+
3+
Para conseguir los scripts de ejecución (tanto el proyecto **server** como **client**) se debe realizar una serie de pasos.
4+
5+
<warning>
6+
<p>
7+
Para los usuarios de <b>Windows</b> es necesario contar con la terminal <a href="https://git-scm.com/downloads/win"><b>Git Bash</b></a>
8+
</p>
9+
<p>
10+
Una vez instalado, en lugar de abrir la Consola de Windows abra la aplicación Git Bash y ejecute allí los comandos que se listan a continuación
11+
</p>
12+
</warning>
13+
14+
15+
A continuación se explica un ejemplo para el módulo server del proyecto sample-project pero el mismo debe repetirse también para el client/ correspondiente.
16+
17+
1. Ubicarse en el directorio **target/**
18+
19+
<code-block lang="console">
20+
cd server/target/
21+
</code-block>
22+
23+
2. **Descomprimir** el archivo con extensión **tar.gz**
24+
25+
<code-block lang="console">
26+
tar -xzf sample-project-server-1.0-SNAPSHOT-bin.tar.gz
27+
</code-block>
28+
29+
3. Ubicarse en el directorio recién creado
30+
31+
<code-block lang="console">
32+
cd sample-project-server-1.0-SNAPSHOT
33+
</code-block>
34+
35+
4. Dar **permisos de ejecución** a los scripts .sh ubicados en el directorio recién creado
36+
37+
<code-block lang="console">
38+
chmod u+x *.sh
39+
</code-block>
40+
41+
5. **Ejecutar** el script correspondiente
42+
43+
<code-block lang="console">
44+
sh run-server.sh
45+
</code-block>
46+
47+
<warning>
48+
<p>
49+
En caso de obtener un error como
50+
</p>
51+
<code-block>
52+
Error: Could not find or load main class ar.edu.itba.pod.server.Server
53+
Caused by: java.lang.ClassNotFoundException: ar.edu.itba.pod.server.Server
54+
</code-block>
55+
<p>
56+
1. Asegurarse de estar ubicado en el mismo directorio del script.
57+
</p>
58+
<p>
59+
2. Consultar la siguiente sección Modificación de los scripts
60+
</p>
61+
</warning>
62+
63+
<note>
64+
<p>
65+
Listo! Ya puede ejecutar el server desde la terminal correctamente.
66+
</p>
67+
<p><b>
68+
Repita el mismo procedimiento para el módulo client desde otra terminal.
69+
</b></p>
70+
</note>
71+
72+
## Modificación de los scripts
73+
74+
En caso de querer **que el script ejecute una clase distinta** a la indicada por defecto
75+
basta con **modificar el .sh correspondiente** ubicado en el directorio assembly/overlay/.
76+
77+
Por ejemplo para el módulo **server** el archivo **run-server.sh** se encuentra ubicado en
78+
79+
<shortcut>
80+
src/main/assembly/overlay/run-server.sh
81+
</shortcut>
82+
83+
A continuación el contenido del run-server.sh que se obtiene al crear un nuevo proyecto
84+
85+
<code-block lang="bash">
86+
#!/bin/bash
87+
88+
PATH_TO_CODE_BASE=`pwd`
89+
MAIN_CLASS="ar.edu.itba.pod.server.Server"
90+
91+
java $JAVA_OPTS -cp 'lib/jars/*' $MAIN_CLASS $*
92+
</code-block>
93+
94+
Puede cambiar <shortcut>MAIN_CLASS</shortcut> por el FQN (Fully Qualified Name) de la clase que desee.
95+
96+
<tip>
97+
<p>
98+
Recordar de volver a ejecutar
99+
<b>mvn install</b> luego de realizar cambios en los scripts de assembly/
100+
para que estos cambios se vean reflejandos en los scripts de target/
101+
</p>
102+
</tip>

Writerside/topics/Starting-Page.topic

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,25 @@
2323

2424
<!-- Add up to 2 topics that you want to promote. Use the "type" attribute to select an icon. -->
2525
<spotlight>
26-
<a href="Install-Java.md" type="account" summary="Instalación en macOS, Linux y Windows">Instalación de Java</a>
27-
<a href="Install-Maven.md" type="search" summary="Instalación en macOS, Linux y Windows">Instalación de Maven</a>
26+
<a href="Install-Java.md" type="start" summary="Instalación en macOS, Linux y Windows">Instalación de Java</a>
27+
<a href="Install-Maven.md" type="library" summary="Instalación en macOS, Linux y Windows">Instalación de Maven</a>
2828
</spotlight>
2929

3030
<!-- Optionally add additional cards and links to topics that are not in this section but may be relevant. -->
3131
<misc>
3232
<cards>
3333
<title>Instalación de Herramientas</title>
34-
<a href="Install-IntelliJ.md"/>
34+
<a href="Install-IntelliJ.md" type="computer"/>
35+
<a href="Install-Archetype.md" type="documents"/>
3536
</cards>
3637

38+
<cards>
39+
<title>Nuevo Proyecto</title>
40+
<a href="New-Project-with-Archetype.md" type="offer"/>
41+
<a href="Project-Execution.md" type="check-list"/>
42+
</cards>
43+
44+
3745
<links>
3846
<group>
3947
<title>Más</title>

0 commit comments

Comments
 (0)