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. 🙂

  • ¿Se puede usar Flink con Kotlin?
  • Convierta la function de Scala a la function de Kotlin
  • Tipo de function con receptor en Scala
  • ¿Por qué Kotlin comstack más rápido que Scala?
  • Biblioteca Headless de una fuente para JVM y JavaScript
  • @uncheckedVariance en Kotlin?
  • ¿Cómo hacer que los constructores seguros de Kotlin trabajen en Scala?
  • ¿Por qué el comstackdor de Scala me da un error al pasar una class sellada de Kotlin a un constructor?
  • Progtwigción funcional: cómo continuar el context para una cadena de reglas de validation
  • Clase de Json a Kotlin Data
  • ¿Es posible mezclar Scala y Kotlin en el mismo module maven?