有没有一种方法可以运行一个非常重要的作业,它需要类路径,而不必使用libjar并以逗号分隔的方式显式地编写每个jar。我想把我所有的jar放在一个lib中,而不是只写-libjars=./lib/*而不是所有的jar。有经典的方法吗??使用烫伤版烫伤核心2.10 0.8.5hadoop版本2.0.0-cdh4.5.0p、 我使用maven来打包jar和lib
5ssjco0h1#
您应该创建一个“fatjar”,其中既包含用libjar添加的依赖项,也包含主类。这里可以看到一个具体的sbt项目示例,它在一个jar中具有烫伤和依赖性。在maven中,您应该添加“assemblyplugin”并使用 mvn assembly:first (如果我记得的话)。如果要使用cloudera jar中已经存在的其他jar(例如,不同版本的jar),那么上述两种方法都不容易,因为您会有依赖关系。我几年前写过类似的东西,你可以试试看,尽管它可能已经过时了。
mvn assembly:first
1条答案
按热度按时间5ssjco0h1#
您应该创建一个“fatjar”,其中既包含用libjar添加的依赖项,也包含主类。这里可以看到一个具体的sbt项目示例,它在一个jar中具有烫伤和依赖性。在maven中,您应该添加“assemblyplugin”并使用
mvn assembly:first
(如果我记得的话)。如果要使用cloudera jar中已经存在的其他jar(例如,不同版本的jar),那么上述两种方法都不容易,因为您会有依赖关系。我几年前写过类似的东西,你可以试试看,尽管它可能已经过时了。