2016-11-05 17 views
1

我想用Java或其他JVM语言(如Scala,Kotlin或Groovy)进行编程。当我在我的项目上编程时,我只想在我的Java/Scala/Kotlin源文件中导入语句,而无需在Gradle/Maven构建脚本中再次声明这些包。相反,我想按照我在Python中所做的那样工作,即在我的源文件的开头有我的导入语句,然后完成了。Python PIP风格的本地Java包管理系统?

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

像Groovy或Maven一样,这样的工作流是否可行?

在此先感谢!

回答

2

我能想到的最接近的是Grape

葡萄是嵌入到Groovy的JAR依赖经理。 Grape允许您快速将Maven存储库依赖关系添加到您的类路径中,使脚本更容易。最简单的用途是作为添加注释到你的脚本一样简单:在this example

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

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

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

关于另一个希望在编译时自动包含以下软件包的情况:在JVM上有fat JAR(也称为uber JAR)的概念,它基本上是一个包含所有依赖关系的JAR(Java归档)因此是独立的。通常,您可以使用一条java命令来启动其中包含的应用程序。

要建立脂肪JAR文件,你需要有选择恰当的插件构建系统:

希望这有助于althought这不是一个准确的答案给你题。 :)