修改了下 appcrawler 的源码,但是打包 jar 后,提示无法加载 com.testerhome.appcrawler.AppCrawler 。想问下@seveniruby 这个 scala 项目怎么打包才是正确的,网上的方式都试过了。
打包配置如下:
我也是这样。
sbt assembly 就可以了。sbt 类似于 gradle,不过学会它不容易。。。
我单独安装了 sbt 进行编译,结果编译出来的,jar 包只有几百 K,没有把依赖加进去,而且也提示没有主清单,但解压 Jar 包里面是有主清单文件的。另外我看了你的 build.sbt 是有填写依赖的,不知道 sbt 为什么打包不进去。
不知是否要进入 project 进行编译,但是进入这个目录编译直接就报错了,提示 sbt 文件有问题。。不清楚你工程里的 project 目录和 src 目录之间是什么样的关系
应该是缺少 scala runtime 环境吧?
与 java 不同,打成 jar 包,没有 runtime 调不起来。
scala 的不是用 jvm 运行的么?百度云盘下载的思寒打包好的 Jar 包,不需要什么 scala 环境。而且 appcrawler 的主类我在 idea 下编译是可以运行的,就是打包不成功很郁闷。
发现 testerhome 的 bug:复制过长的文章标题在搜索栏进行搜索,app 闪退。
复制为内容:appium+selenium+python web 自动化 / 手机自动化 [汇总] 分享 (适合初学)
构建成功了,不是确实 runtime 的问题,是构建方式的问题;构建的顺序是在执行目录下;先 sbt ---》然后再输入 assembly 就可以,自动编译打包。之前是 sbt package
我这不是 mac,在 intelliIDEA 上弄好 scala 环境,导入 appcrawler 功能,总是报错。各位是怎么解决的?
[info] Reapplying settings...
[info] Set current project to AppCrawler (in build file:/Users/dengwei/Documents/amap-client/crawler/AppCrawler/AppCrawler/)
[info] Applying State transformations org.jetbrains.sbt.CreateTasks from /Users/dengwei/Library/Application Support/IntelliJIdea2016.2/Scala/launcher/sbt-structure-1.0.jar
[error] java.lang.ClassNotFoundException: org.jetbrains.sbt.CreateTasks$
[error] at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
[error] at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[error] at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[error] at java.lang.Class.forName0(Native Method)
[error] at java.lang.Class.forName(Class.java:348)
[error] at sbt.internal.inc.ModuleUtilities$.getObject(ModuleUtilities.scala:20)
[error] at sbt.BasicCommands$.$anonfun$call$5(BasicCommands.scala:187)
[error] at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:234)
[error] at scala.collection.immutable.List.foreach(List.scala:389)
[error] at scala.collection.TraversableLike.map(TraversableLike.scala:234)
[error] at scala.collection.TraversableLike.map$(TraversableLike.scala:227)
[error] at scala.collection.immutable.List.map(List.scala:295)
[error] at sbt.BasicCommands$.$anonfun$call$2(BasicCommands.scala:187)
[error] at sbt.Command$.$anonfun$applyEffect$4(Command.scala:125)
[error] at sbt.Command$.$anonfun$applyEffect$2(Command.scala:121)
[error] at sbt.MainLoop$.processCommand(MainLoop.scala:121)
[error] at sbt.MainLoop$.$anonfun$next$2(MainLoop.scala:105)
[error] at sbt.State$$anon$1.runCmd$1(State.scala:227)
[error] at sbt.State$$anon$1.process(State.scala:233)
[error] at sbt.MainLoop$.$anonfun$next$1(MainLoop.scala:105)
[error] at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16)
[error] at sbt.MainLoop$.next(MainLoop.scala:105)
[error] at sbt.MainLoop$.run(MainLoop.scala:98)
[error] at sbt.MainLoop$.$anonfun$runWithNewLog$1(MainLoop.scala:76)
[error] at sbt.io.Using.apply(Using.scala:22)
[error] at sbt.MainLoop$.runWithNewLog(MainLoop.scala:70)
[error] at sbt.MainLoop$.runAndClearLast(MainLoop.scala:52)
[error] at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:37)
[error] at sbt.MainLoop$.runLogged(MainLoop.scala:29)
[error] at sbt.StandardMain$.runManaged(Main.scala:104)
[error] at sbt.xMain.run(Main.scala:71)
[error] at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109)
你是用的 idea 的打包编译么?用那个不行,要在控制台先 sbt ---》然后再输入 assembly 就可以。具体参考http://blog.sina.com.cn/s/blog_c3dbcdab0102w3v9.html