Python中的PIP风格的本地Java包管理系统?

我想用Java或其他JVM语言(如Scala,Kotlin或Groovy)进行编程。 当我在我的项目上编程时,我只想在我的Java / Scala / Kotlin源文件中导入语句,而无需在Gradle / Maven构建脚本中再次声明这些包。 相反,我想要像在Python中那样工作,即在我的源文件的开头有我的导入语句,我就完成了。

如果所有软件包都安装在本地中央软件包管理系统中,或者得到一个错误消息,告诉我必须安装缺少的软件包,那么在编译时应该自动包含这些软件包。 它应该基本上和Python和PIP一样工作。

像Groovy或Maven这样的工作流是可能的吗?

提前致谢!

我能想到的最接近的是葡萄 :

Grape是嵌入到Groovy中的JAR依赖管理器。 Grape允许您快速将Maven存储库依赖关系添加到您的类路径中,从而使脚本更加轻松。 最简单的用法就像在脚本中添加注释一样简单:

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

像这个例子一样 :

 @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() } 

我不能判断Groovy的风景,因为我没有任何经验,但是对于开发Java或Scala应用程序来说,就我所知,这个确切的工作流程是不可能的。

关于“我只想要导入语句…”我认为最接近你可以得到的是一个IDE中的良好的Maven / Gradle / sbt集成,比如IntelliJ,当使用正确的时候自动将所需的库添加到你的构建系统的配置文件捷径。 当你在IntelliJ中处理一个Maven项目时,它(至少)适用于一些Java库。

关于另一个希望在编译时自动包含以下内容的方法:在JVM上有一个胖JAR(也称为uber JAR)的概念,它基本上是一个包含所有依赖关系的JAR(Java归档),因此是独立的。 通常你可以用一个单独的java命令来启动它所包含的应用程序。

要构建胖JAR,您需要为您的构建系统提供适当的插件:

  • 对于将作为Maven遮罩插件Maven ,请参阅https://maven.apache.org/plugins/maven-shade-plugin/
  • 对于sbt,您可以使用程序集插件 ,请参阅https://github.com/sbt/sbt-assembly
  • Gradle可能有类似的东西
  • 许多Java框架还带有自己的构建插件,这些构建插件可以使构建这样的自包含应用程序相对简单( Spring Boot就是一个例子,但仅适用于位于HTTP服务器之上的应用程序)

希望这有助于,虽然这不是一个准确的答案你的问题。 🙂