作者:书友79805954 | 来源:互联网 | 2023-01-31 09:18
我变得非常沮丧.我无法在互联网上的任何地方找到我的问题的单一,有凝聚力的答案.很多文档,但没有任何东西可以将它们组合在一起(尽管我能找到).
我只需要有人告诉我:
如何设置一个groovy项目(编辑:包括放置源文件的位置,在哪些目录,目录结构等)
假设我以前没有构建groovy
或java之前(我有,但与我合作)
以某种方式我可以指定一个依赖项(这是我的依赖项 - > https://github.com/bpsm/edn-java)所以可能使用maven或gradle
一个主要类和主要方法(再次,与我合作)
在构建结束时,我需要一个我可以执行的jar文件,java -jar .jar
打印出"hello world"
尽可能简单.
1> Will..:
我强烈推荐Gradle; 设置非常简单(虽然我在学习它时也很挣扎).我在github中添加了生成的项目.
让我们在没有IDE的情况下从零创建项目结构.我认为你已经$JAVA_HOME
设置好了.
1.创建项目结构
下载Gradle并将其放入您的$PATH
创建目录项目(我创建/tmp/gr8ex
)
切换到它然后运行gradle init
[1]
编辑build.gradle
创建的文件并添加以下行:
plugins { // [2]
id 'groovy'
}
repositories { mavenCentral() } // [3]
dependencies { // [4]
testCompile 'org.codehaus.groovy:groovy-all:2.4.8'
compile 'org.codehaus.groovy:groovy-all:2.4.8'
testCompile 'junit:junit:4.12'
}
现在是源文件; 我们需要创建gradle使用的默认目录结构(我们可以更改它,但让我们使用默认值):
这是创建源代码目录:
mkdir -p src/main/groovy
和测试源文件夹:
mkdir -p src/test/groovy
最终结果应如下所示:
gr8ex
??? build.gradle
??? gradle
? ??? wrapper
? ??? gradle-wrapper.jar
? ??? gradle-wrapper.properties
??? gradlew
??? gradlew.bat
??? settings.gradle
??? src
??? main
? ??? groovy
??? test
??? groovy
2.添加源代码
让我们添加一个测试包:
mkdir -p src/test/groovy/org/gr8ex
并且测试.我正在使用gedit src/test/groovy/org/gr8ex/HelloTest.groovy
:
package org.gr8ex
class HelloTest extends GroovyTestCase {
void 'test Hello should return "Hello, World!"' () {
assert new Hello().world == "Hello, World!"
}
}
让我们执行测试并检查它是否失败:
gradle test
是的,它失败了:
/tmp/gr8ex/src/test/groovy/org/gr8ex/HelloTest.groovy: 5: unable to resolve class Hello
@ line 5, column 12.
assert new Hello().world == "Hello, World!"
^
1 error
:compileTestGroovy FAILED
我们来添加源文件夹
mkdir -p src/main/groovy/org/gr8ex
和一个源文件(我用过gedit src/main/groovy/org/gr8ex/Hello.groovy
).注意它已经有我们的static main
方法:
package org.gr8ex
class Hello {
def getWorld() {
"Hello, World!"
}
static main(args) {
println new Hello().world
}
}
再次测试(带gradle test
)并断言我们得到消息BUILD SUCCESSFUL
:
$ gradle test
:compileJava UP-TO-DATE
:compileGroovy
:processResources UP-TO-DATE
:classes
:compileTestJava UP-TO-DATE
:compileTestGroovy
:processTestResources UP-TO-DATE
:testClasses
:test
BUILD SUCCESSFUL
Total time: 5.52 secs
完成.是时候创建应用程序jar了.
3.创建jar
可执行文件
有几种方法可以实现这一点(如阴影插件).我会坚持使用"胖子"的方法.
让我们fatjar
在build.gradle
[5]中添加一条指令:
task fatjar(type: Jar) {
manifest {
attributes 'Main-Class': 'org.gr8ex.Hello'
}
from {
configurations
.runtime
.collect { it.isDirectory() ? it : zipTree(it) }
}
with jar
}
包装它:
gradle fatjar
结果jar
将在builds/libs/gr8ex.jar
.让我们执行它:
$ java -jar build/libs/gr8ex.jar
Hello, World!
利润!您可以使用intellij和(我相信)eclipse导入此项目.
[1]:Gradle创建一些基本结构并添加包装脚本,以便在没有Gradle的情况下执行它(如果需要).
[2]:我们告诉gradle这个项目将使用groovy
[3]:我们告诉gradle使用mavencentral
存储库.JCenter也很受欢迎.
[4]:这里我们告诉gradle这个项目需要在编译和测试阶段使用groovy-all lib
[5]:如果你只是坚持一个jar {}
指令,就像这个答案一样,你将以一个非常薄的罐子结束,这将缺少groovy libs.这个"fatjar"将你的libs打包到jar中.根据您的使用情况,您可能需要稍微调整一下.