Entorno de desarrollo para Java

KazuluDev

Los que programáis con Java, ¿cómo tenéis configurado vuestro ordenador?

Spring tiene un servidor embebido para desarrollo, pero estoy tratando de encontrar una manera bonita de trabajar con Java "a pelo" ya que ahora estoy aprendiendo lo que sería Java web sin frameworks.

Ahora mismo tengo instalado Windows 10, con WSL2 y Ubuntu 20.04. Dentro de Ubuntu tengo Instellij y JDK 11.

He pensado en utilizar Docker y en ello estoy con este Docker Compose:

version: "3"

services:
  server:
    image: tomcat:10.0.0-jdk11
    restart: unless-stopped
    ports:
      - 8080:8080

  database:
    image: mysql
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: root
    ports:
      - 3306:3306
    volumes:
      - ./database/init.sql:/docker-entrypoint-initdb.d/init.sql:ro

Y sigo pensando en como seguir o si me renta seguir con esta idea. Mientras tanto, acepto consejos.

KazuluDev

Otra opción, descargar el .zip de Tomcat y ejecutarlo desde el IDE (Intellij o Eclipse dejan facilmente) y levantar la base de datos con Docker.

1 respuesta
JuAn4k4

Otra opción es no usar Tomcat y usar nginx o similar y dejar la app en un jar haciendo binding a un puerto a pelo y dejandolo expuesto únicamente en la red interna.

1 respuesta
KazuluDev

#3 Te refieres a que desde el IDE genero el .jar en alguna carpeta que hago volume y bindeo con la que toque en Nginx, no?

No estoy muy seguro del funcionamiento de Nginx, solo con PHP, ¿pero en ese caso al actualizar el .jar sería necesario un restart del servidor?

KarlosWins

#2 Con maven puedes hacerte un goal que te levante un docker con tomcat y haga install-deploy de la aplicación, y que lance las pruebas que quieras

1 respuesta
KazuluDev

#5 no he tocado demasiado Maven más allá de meter las librerías de JDBC por ejemplo...

Ya que estamos, Maven o Gradle?

1 respuesta
KarlosWins

#6 Nunca he probado Gradle a nivel empresarial, siempre he tenido que tragar con Maven. De momento no me he encontrado limitado por maven para hacer nada, hay mil plugins para lo que se te ocurra, jenkins docker etc

1 respuesta
Lecherito

#7 Pues ahora imaginate un maven donde tienes un lenguaje de programacion como configuracion. No una basura de XML. Es que no le llega ni a la suela de los zapatos macho.

A mi me parece que usar java web sin frameworks es un marron enorme. No lo haria ni con tus manos.

2 respuestas
KazuluDev

#8 ¿no lo harías para aprender?

2 respuestas
Lecherito

#9 Que buscas aprender con ello?

  1. Como funciona HTTP: Basicamente te haces tu propio cliente http y manejas todo lo que tengas que manerar, no necesitas nada mas que 4 cosas de Java y poco mas
  2. Java/JVM con un servicio: Usar java web es contraproducente porque practicamente nadie lo usa. Frameworks como Spring/Vert.x te van a ser mucho mas utiles.
  3. Java/JVM con cosas random: No se, jueguecitos de consola y todas estas mierdas es suficiente, o los leetcode de turno al toque.
1 respuesta
D10X

#9 Para aprender q?

Yo hacía servicios web a manubrio con Java (hace muchos años), y ese conocimiento no sirve de nada actualmente porque ningún proyecto los monta a pelo.

Sale más a cuenta aprender el framework de moda.

1 respuesta
KazuluDev

#10 #11 Me habéis convencido, ahora lo que estaba haciendo es aprender el tema de los servlets, sesiones, JSP y demás.

Java como tal sé usarlo, es lo único que dimos en 1º del FP.

KarlosWins

#8 No, si ya, pero currando nunca lo he podido usar. He trabajado en banca y con temas de PKI, cosas muy interesantes, pero no he podido usar Gradle. Maven me ha salvado el culo muchas veces con conflictos en problemas complejos de criptografía, aunque ha sido un dolor de cabeza dar con la solución.

Sobre lo de aprender java sin frameworks a mí no me parece mal, por lo menos en mi caso trabajando con ello me ha hecho falta resolver algunos bugs que si me hubiera limitado a aprender a usar un framework y no cómo funcionan internamente no sé si hubiera dado con ellos. Otra cosa es que si estás empezando en esto a lo mejor no es la mejor idea, puedes aprender mucho más rápido utilizando frameworks y luego poco a poco alargar las raíces de tu conocimiento.

JuAn4k4

Para aprender servlets, jsps y sessions, te puedes ir al 2004 que estaba struts a tope.

Sería mejor que aprendieras a poner una app en docker

1 respuesta
KazuluDev

#14 He pasado a Spring directamente.

Creo que en desarrollo no voy a poner la app en el contenedor por facilitarme el desarrollo básicamente y tendré los contenedores con los servicios externos únicamente estilo MySQL.

1 respuesta
KarlosWins

#15 Si lo haces por aprender tampoco pierdes nada por intentarlo

1 respuesta
KazuluDev

#16 a que de todo te refieres? Jajaja

1 respuesta
KarlosWins

#17 A montar toda la app en contenedores. Échale un ojo a spring boot https://spring.io/guides/gs/spring-boot-docker/

1 respuesta
KazuluDev

#18 lo revisaré que tiene buena pinta.

A ver macho porque al final vengo de usar PHP con Laravel y Vue y está todo tan integrado y es tan fácil desarrollar ahí que...

Así que a ver si encuentro un método que sea también cómodo.

1 respuesta
JuAn4k4

#19 Si quieres aprender: Sal de tu zona de confort. Si no, no vas a aprender nada.

Usuarios habituales

  • JuAn4k4
  • KazuluDev
  • KarlosWins
  • D10X
  • Lecherito