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

时间:2016-11-05 17:59:23

标签: java scala maven groovy kotlin

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

当我编译时,如果所有软件包都安装在中央本地软件包管理系统中,则应自动包含软件包,否则会收到一条错误消息,告诉我必须安装缺少的软件包。它应该基本上与Python和PIP相同。

这样的工作流程最好是使用Groovy还是Maven?

提前致谢!

2 个答案:

答案 0 :(得分:2)

我能想到的最接近的是Grape

  

Grape是嵌入到Groovy中的JAR依赖项管理器。 Grape允许您快速将maven存储库依赖项添加到类路径中,从而使脚本编写变得更加容易。最简单的用法就像在脚本中添加注释一样简单:

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

喜欢this example

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

答案 1 :(得分:0)

我无法判断Groovy格局,因为我没有任何经验,但是对于开发Java或Scala应用程序,据我所知,这种确切的工作流程是不可能的。

关于“我只想拥有导入语句......”我认为最接近的是IDE中的Maven / Gradle / sbt集成,如IntelliJ,它会自动将所需的库添加到构建系统的配置文件中使用正确的快捷方式。当您在IntelliJ中处理Maven项目时,它(至少)适用于某些Java库。

关于你在编译时自动包含包的其他愿望:在JVM上有fat JAR(也称为uber JAR)的概念,它基本上是一个包含所有依赖项的JAR(Java归档文件),因此自成一体。通常,您可以使用单个java命令启动其中包含的应用程序。

要构建胖JAR,您需要为构建系统安装approriate插件:

希望这会有所帮助,虽然这不是你问题的准确答案。 :)