Sistema local de administración de packages Java en Python PIP style?

Quiero progtwigr en Java u otros lenguajes JVM como Scala, Kotlin o Groovy. Cuando estoy progtwigndo en mis proyectos, solo quiero tener declaraciones de import en mis files fuente de Java / Scala / Kotlin sin la necesidad de declarar los packages por segunda vez en un script de construcción de Gradle / Maven. En cambio, quiero trabajar como lo haría en Python, es decir, tener mis declaraciones de import al comienzo de mis files fuente y listo.

Los packages deberían includese automáticamente cuando estoy comstackndo si todos los packages están instalados en un sistema central de administración de packages local o recibir un post de error indicándome que tengo que instalar un package faltante. En esencia, debería funcionar igual que para Python y PIP, respectivamente.

¿Es posible un flujo de trabajo como este preferiblemente con Groovy o Maven?

¡Gracias por adelantado!

Lo más cerca que puedo pensar es Grape :

Grape es un administrador de dependencies JAR embedded en Groovy. Grape le permite agregar rápidamente dependencies de repository maven a su classpath, haciendo que las secuencias de commands sean aún más fáciles. El uso más simple es tan simple como agregar una anotación a su secuencia de commands:

@Grab(group='org.springframework', module='spring-orm', version='3.2.5.RELEASE') import org.springframework.jdbc.core.JdbcTemplate 

Como en este ejemplo :

 @Grab('net.sourceforge.nekohtml:nekohtml:1.9.16') def parser = new org.cyberneko.html.parsers.SAXParser() def page = new XmlParser(parser).parse('https://news.google.com/nwshp?hl=zh-TW&tab=wn') page.depthFirst().DIV.grep{ it.'@class'=='title' }.each { println it.A.SPAN.text() } 

No puedo juzgar el paisaje de Groovy ya que no tengo ninguna experiencia allí, pero para el desarrollo de aplicaciones Java o Scala este flujo de trabajo exacto no es posible hasta donde yo sé.

Respecto a "Solo quiero tener declaraciones de import …" Creo que lo más cercano que puede get es una buena integración de Maven / Gradle / sbt en un IDE, como IntelliJ, que agrega automáticamente la biblioteca deseada al file de configuration de su sistema de compilation cuando usa el correcto atajo. Funciona (al less) para algunas bibliotecas Java cuando se trata de un proyecto Maven en IntelliJ.

Y en cuanto a su otro deseo de tener packages incluidos automáticamente al comstackr: en la JVM existe el concepto de JAR (también llamado JAR), que es básicamente un JAR (file Java) que contiene todas las dependencies y, por lo tanto, es autónomo. . Por lo general, puede iniciar la aplicación contenida en él con un solo command java .

Para build JARs gordos necesitas tener el complemento apropiado para tu sistema de compilation:

  • Para Maven, ese sería el plugin maven shade , ver https://maven.apache.org/plugins/maven-shade-plugin/
  • Para sbt puede usar el complemento de ensamblaje , consulte https://github.com/sbt/sbt-assembly
  • Gradle probablemente tiene algo similar
  • Muchos frameworks Java también vienen con sus propios complementos de compilation que hacen que la creación de tales aplicaciones autocontenidas sea relativamente simple ( Spring Boot es un ejemplo, pero solo es adecuado para aplicaciones que se encuentran en la parte superior de un server HTTP)

Espero que esto ayude, aunque no es una respuesta precisa a tu pregunta. 🙂

  • @uncheckedVariance en Kotlin?
  • Herencia genérica de Kotlin
  • ¿Es posible express kotlin 'con' método equivalente en Scala?
  • Forma equivalente de Scala de Rango a class personalizada
  • ¿Es posible mezclar Scala y Kotlin en el mismo module maven?
  • Comstackción manual de JAR para Scala & Kotlin
  • Kotlin zipToda alternativa
  • Kotlin: llaves de varias expresiones (o declaraciones)
  • Clase de Json a Kotlin Data
  • Companion se beneficia de la posibilidad de implementar interfaces
  • ¿Por qué el comstackdor de Scala me da un error al pasar una class sellada de Kotlin a un constructor?