是的,我的论文已经完成了!现在压力已经消失了,我已经完成了玩Skyrim的工作,我正在将我为论文编写的代码从一个用ant构建的混乱目录转换为一个漂亮的maven项目。
我最初有一个bin
目录,其中包含大约20个bash脚本,这些脚本运行了我论文中使用的各种java和ruby程序,包括最终的基于jruby / sinatra的Web服务器。我打算将我的脚本移动到src/main/scripts
,但我需要弄清楚如何处理类路径。
我以前只是将脚本中的硬编码路径转换为手动下载的依赖项。但是,现在maven正在下载并存储我需要的所有罐子,从我的脚本中引用它们的最佳方法是什么:
../../../target/*-jar-with-dependencies.jar
访问它吗? 答案 0 :(得分:1)
在您的脚本中,使用exec:java
插件来运行Java类。它将根据定义的依赖关系对类路径进行排序。那你就不用担心了。
答案 1 :(得分:1)
重新学习你拥有的所有脚本。您可以使用maven exec plugin来实现其中一些功能。
除了程序集和阴影插件外,您可能还想查看maven dependency plugin提供的功能。
答案 2 :(得分:1)
在我的项目( Soluvas fb-tools/fbcli )中,因为我使用的是Java 6及更高版本(支持wildcard classpaths),所以这就是我的工作:
#!/bin/bash
# Must run first: mvn package dependency:copy-dependencies
java -cp 'target/dependency/*:target/fbcli-1.0.0-SNAPSHOT.jar' org.jboss.weld.environment.se.StartMain "$@"
无需手动生成类路径。 :)
答案 3 :(得分:0)
有很多插件做你提到的类似的事情。您提到的程序集插件无疑是其中之一(并且您建议的方式也是一个简洁的工作解决方案)。
您可能需要查看AppAssembler和Shade。它们都提供了一些捆绑依赖关系并生成直接可执行包的机制。