Giter VIP home page Giter VIP logo

foldright / sbt-one-log Goto Github PK

View Code? Open in Web Editor NEW
46.0 9.0 4.0 88 KB

๐ŸŒณ sbt-one-log resolve the logging dependencies chaos in your development, just make logging work as you expect and follow the best practice, automatically.

Home Page: https://github.com/foldright/sbt-one-log

License: Apache License 2.0

Shell 1.81% Scala 94.28% Mustache 3.91%
sbt scala slf4j logback log4j jar-hell logging-dependencies

sbt-one-log's Introduction

sbt-one-log plugin

Build Status GitHub release GitHub Stars GitHub Forks License

sbt-one-log is a sbt plugin make logging dependency easy.

sbt-one-log plugin provides you an easy way to manage the logging dependency (avoid the logging lib hell):

  • Resolve the logging dependencies chaos in your development.
  • Just make logging work as you expect and follow the best practice, automatically.
  • Keep the dependency available when generate pom.xml.


๐Ÿ”ง Features

  • Automatic uniform your logging dependencies, current support slf4j and logback, other logging lib will be bridged to slf4j.
  • scala-logging support, if you don't need it, you can turn off the scala-logging support.
  • Task generateLogbackXML to help you generate the logback.xml and logback-test.xml.

๐Ÿ‘ฅ Usage

For sbt 0.13.5 or above, if you use sbt under 0.13.5, please use : 0.1.3

Add sbt-one-log plugin to the sbt configuration:

Add plugin in project/plugins.sbt

addSbtPlugin("com.zavakid.sbt" % "sbt-one-log" % "1.0.1")

Using build.sbt

// oneLogSettings will add libDependencies and resolvers
lazy val yourProject = (project in file(".")).enablePlugins(SbtOneLog)

Now sbt-one-log will add the logging dependency and override other logging lib automatically.

Using project/Build.scala

important: oneLogSettings must position after libraryDependencies.

import sbt._
import sbt.Keys._
import com.zavakid.sbt._

object Build extends sbt.Build {

  // add oneLogSettings to your settings
  lazy val root = Project(
    id = "example",
    base = file(.),
  ).enablePlugins(SbtOneLog)

  //...
  //other settings
  //...
}

Now everything is OK.

๐Ÿšš Release notes

See sbt-one-log release notes.

โœจ Why sbt-one-log

Scala can leverage lots of perfect Java lib, but it's chaotic with the logging libs in Java world.

Looking at the logging libs below: ๐Ÿ˜•

  • java.util.logging
  • commons-logging
  • commons-logging-api
  • log4j
  • slf4j
  • logback
  • log4j 2
  • scala-logging
  • slf4s (the latest version only support Scala 2.9.1)
  • Grizzled SLF4J
  • AVSL
  • loglady
  • logula (abandoned)

Of course, you can keep your project dependency cleanly with one or two logging lib (e.g., slf4j and logback)

But sometimes your other dependencies is out of control. e.g., if your dependency with apache httpclient lib which contains dependency with commons-logging, you will log with commons-logging

Also, you can add jcl-over-slf4j and exclude commons-logging explicitly in libraryDependencies setting.

A better way is to explicitly declare dependency commons-logging with the special version 99-empty.

So, sbt-one-log comes to free your hands.

๐Ÿ‘ฉโ€๐Ÿš’ For developers

Test

After (fix bugs)/(add features), please add test case and run test. to run test, just

scripts/bump-version.sh 1.x.y

sbt publishLocal
sbt scripted

Release

When release a new version, make sure to publish to notes.implicit.ly by herald please.

๐Ÿ“œ License

sbt-one-log is under the Apache 2.0 License.

sbt-one-log's People

Contributors

lustefaniak avatar oldratlee avatar xuwei-k avatar zavakid avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sbt-one-log's Issues

multi project with sbt 0.13.7 failed

[info] [error] (module1/*:update) sbt.ResolveException: download failed: javax.jms#jms;1.1!jms.jar
[info] [error] download failed: com.sun.jdmk#jmxtools;1.2.1!jmxtools.jar
[info] [error] download failed: com.sun.jmx#jmxri;1.2.1!jmxri.jar
[info] [error] Total time: 13 s, completed 2015-3-6 23:54:36
[info] [warn]   ::::::::::::::::::::::::::::::::::::::::::::::
[info] [warn]   ::              FAILED DOWNLOADS            ::
[info] [warn]   :: ^ see resolution messages for details  ^ ::
[info] [warn]   ::::::::::::::::::::::::::::::::::::::::::::::
[info] [warn]   :: javax.jms#jms;1.1!jms.jar
[info] [warn]   :: com.sun.jdmk#jmxtools;1.2.1!jmxtools.jar
[info] [warn]   :: com.sun.jmx#jmxri;1.2.1!jmxri.jar
[info] [warn]   ::::::::::::::::::::::::::::::::::::::::::::::

can't download com.sun.jdmk#jmxtools;1.2.1!jmxtools.jar

Error when enabling on a sub-project

SBT 0.13.7 with cached resolution enabled

The error is like this:

java.io.FileNotFoundException: C:\projects\my_project\my_sub_project\target\resolution-cache\reports\com.me.my_sub_project_2.11-compile.xml
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(FileInputStream.java:131)
at scala.io.Source$.fromFile(Source.scala:90)
at scala.io.Source$.fromFile(Source.scala:75)
at scala.io.Source$.fromFile(Source.scala:53)
at com.zavakid.sbt.IvyGraphMLDependencies$.buildDoc(Util.scala:141)
at com.zavakid.sbt.IvyGraphMLDependencies$.graph(Util.scala:62)
at com.zavakid.sbt.SbtOneLog$$anonfun$projectSettings$7.apply(SbtOneLog.scala:111)
at com.zavakid.sbt.SbtOneLog$$anonfun$projectSettings$7.apply(SbtOneLog.scala:111)
at scala.Function1$$anonfun$andThen$1.apply(Function1.scala:55)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
at sbt.std.Transform$$anon$4.work(System.scala:63)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.Execute.work(Execute.scala:235)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:744)

actor name [localBrowser] is not unique

SBT 0.13.7 with cached resolution

When enabling on a Play project:

akka.actor.InvalidActorNameException: actor name [localBrowser] is not unique!
at akka.actor.dungeon.ChildrenContainer$NormalChildrenContainer.reserve(ChildrenContainer.scala:130)
at akka.actor.dungeon.Children$class.reserveChild(Children.scala:77)
at akka.actor.ActorCell.reserveChild(ActorCell.scala:369)
at akka.actor.dungeon.Children$class.makeChild(Children.scala:202)
at akka.actor.dungeon.Children$class.attachChild(Children.scala:42)
at akka.actor.ActorCell.attachChild(ActorCell.scala:369)
at akka.actor.ActorSystemImpl.actorOf(ActorSystem.scala:552)
at com.typesafe.sbt.webdriver.SbtWebDriver$$anonfun$com$typesafe$sbt$webdriver$SbtWebDriver$$load$1.apply(SbtWebDriver.scala:64)
at com.typesafe.sbt.webdriver.SbtWebDriver$$anonfun$com$typesafe$sbt$webdriver$SbtWebDriver$$load$1.apply(SbtWebDriver.scala:59)
at com.typesafe.sbt.web.SbtWeb$.withActorRefFactory(SbtWeb.scala:441)
at com.typesafe.sbt.webdriver.SbtWebDriver$.com$typesafe$sbt$webdriver$SbtWebDriver$$load(SbtWebDriver.scala:58)
at com.typesafe.sbt.webdriver.SbtWebDriver$$anonfun$globalSettings$2$$anonfun$apply$2.apply(SbtWebDriver.scala:43)
at com.typesafe.sbt.webdriver.SbtWebDriver$$anonfun$globalSettings$2$$anonfun$apply$2.apply(SbtWebDriver.scala:43)
at scala.Function1$$anonfun$andThen$1.apply(Function1.scala:55)
at sbt.Project$.setProject(Project.scala:312)
at sbt.BuiltinCommands$.doLoadProject(Main.scala:484)
at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:475)
at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:475)
at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:58)
at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:58)
at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:60)
at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:60)
at sbt.Command$.process(Command.scala:92)
at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:98)
at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:98)
at sbt.State$$anon$1.process(State.scala:184)
at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:98)
at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:98)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.MainLoop$.next(MainLoop.scala:98)
at sbt.MainLoop$.run(MainLoop.scala:91)
at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:70)
at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:65)
at sbt.Using.apply(Using.scala:24)
at sbt.MainLoop$.runWithNewLog(MainLoop.scala:65)
at sbt.MainLoop$.runAndClearLast(MainLoop.scala:48)
at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:32)
at sbt.MainLoop$.runLogged(MainLoop.scala:24)
at sbt.StandardMain$.runManaged(Main.scala:53)
at sbt.xMain.run(Main.scala:28)
at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109)
at xsbt.boot.Launch$.withContextLoader(Launch.scala:129)
at xsbt.boot.Launch$.run(Launch.scala:109)
at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:36)
at xsbt.boot.Launch$.launch(Launch.scala:117)
at xsbt.boot.Launch$.apply(Launch.scala:19)
at xsbt.boot.Boot$.runImpl(Boot.scala:44)
at xsbt.boot.Boot$.main(Boot.scala:20)
at xsbt.boot.Boot.main(Boot.scala)

scala-logging error with scala 2.11

with sbt scripted :

[info] error libraryDependencies [com.typesafe.scala-logging:scala-logging-api_2.11:2.1.2] error!
[info] [error] Total time: 0 s, completed 2015-3-6 23:45:03
[error] x sbt-one-log / simple_0.13.7
[error] {line 1} Command failed: check failed
java.lang.RuntimeException: Failed tests:
sbt-one-log / multi_0.13.7
sbt-one-log / simple_0.13.7

at scala.sys.package$.error(package.scala:27)
at sbt.test.ScriptedTests$.runAll(ScriptedTests.scala:119)
at sbt.test.ScriptedTests$.run(ScriptedTests.scala:114)
at sbt.test.ScriptedTests$.run(ScriptedTests.scala:106)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at sbt.ScriptedPlugin$$anonfun$scriptedTask$1$$anonfun$apply$3$$anonfun$apply$4.apply(ScriptedPlugin.scala:61)
at sbt.ScriptedPlugin$$anonfun$scriptedTask$1$$anonfun$apply$3$$anonfun$apply$4.apply(ScriptedPlugin.scala:57)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
at sbt.std.Transform$$anon$4.work(System.scala:63)

build error under jdk 11

using jdk 8, build is ok; using jdk 11, build error.

Maybe upgrade sbt can resolve this problem.


using jdk 11, sbt build error info:

$ sbt clean
[warn] The global sbt directory is now versioned and is located at ~/.sbt/0.13.
[warn]   You are seeing this warning because there is global configuration in ~/.sbt but not in ~/.sbt/0.13.
[warn]   The global sbt directory may be changed via the sbt.global.base system property.
[info] Loading project definition from ~/sbt-one-log/project
[warn] The global sbt directory is now versioned and is located at ~/.sbt/0.13.
[warn]   You are seeing this warning because there is global configuration in ~/.sbt but not in ~/.sbt/0.13.
[warn]   The global sbt directory may be changed via the sbt.global.base system property.
[info] Updating {file:~/sbt-one-log/project/}sbt-one-log-build...
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by sbt.ivyint.ErrorMessageAuthenticator$ (file:~/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.7/ivy-0.13.7.jar) to field java.net.Authenticator.theAuthenticator
WARNING: Please consider reporting this to the maintainers of sbt.ivyint.ErrorMessageAuthenticator$
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
        at sbt.inc.TextAnalysisFormat$ObjectStringifier$$anonfun$34.apply(TextAnalysisFormat.scala:334)
        at sbt.inc.TextAnalysisFormat$ObjectStringifier$$anonfun$34.apply(TextAnalysisFormat.scala:334)
        at sbt.inc.FormatTimer$.aggregate(TextAnalysisFormat.scala:18)
        at sbt.inc.TextAnalysisFormat$ObjectStringifier$.stringToObj(TextAnalysisFormat.scala:334)
        at sbt.inc.TextAnalysisFormat$APIsF$$anonfun$14.apply(TextAnalysisFormat.scala:212)
        at sbt.inc.TextAnalysisFormat$APIsF$$anonfun$14.apply(TextAnalysisFormat.scala:212)
        at sbt.inc.TextAnalysisFormat$.sbt$inc$TextAnalysisFormat$$toPair$1(TextAnalysisFormat.scala:395)
        at sbt.inc.TextAnalysisFormat$$anonfun$sbt$inc$TextAnalysisFormat$$readPairs$1.apply(TextAnalysisFormat.scala:400)
        at sbt.inc.TextAnalysisFormat$$anonfun$sbt$inc$TextAnalysisFormat$$readPairs$1.apply(TextAnalysisFormat.scala:400)
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
        at scala.collection.immutable.Range.foreach(Range.scala:141)
        at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
        at scala.collection.AbstractTraversable.map(Traversable.scala:105)
        at sbt.inc.TextAnalysisFormat$.sbt$inc$TextAnalysisFormat$$readPairs(TextAnalysisFormat.scala:400)
        at sbt.inc.TextAnalysisFormat$.sbt$inc$TextAnalysisFormat$$readMap(TextAnalysisFormat.scala:404)
        at sbt.inc.TextAnalysisFormat$APIsF$.read(TextAnalysisFormat.scala:224)
        at sbt.inc.TextAnalysisFormat$$anonfun$4.apply(TextAnalysisFormat.scala:75)
        at sbt.inc.TextAnalysisFormat$$anonfun$4.apply(TextAnalysisFormat.scala:75)
        at sbt.inc.FormatTimer$.aggregate(TextAnalysisFormat.scala:18)
        at sbt.inc.FormatTimer$.time(TextAnalysisFormat.scala:25)
        at sbt.inc.TextAnalysisFormat$.read(TextAnalysisFormat.scala:75)
        at sbt.inc.FileBasedStore$$anon$1$$anonfun$getUncaught$1.apply(FileBasedStore.scala:18)
        at sbt.inc.FileBasedStore$$anon$1$$anonfun$getUncaught$1.apply(FileBasedStore.scala:18)
        at sbt.Using.apply(Using.scala:24)
        at sbt.inc.FileBasedStore$$anon$1.getUncaught(FileBasedStore.scala:18)
        at sbt.inc.FileBasedStore$$anon$1.get(FileBasedStore.scala:16)
        at sbt.inc.AnalysisStore$$anon$1.get(AnalysisStore.scala:22)
        at sbt.inc.AnalysisStore$$anon$2.get(AnalysisStore.scala:28)
        at sbt.compiler.AggressiveCompile.compile1(AggressiveCompile.scala:64)
        at sbt.compiler.AggressiveCompile.apply(AggressiveCompile.scala:45)
        at sbt.Compiler$.apply(Compiler.scala:74)
        at sbt.Compiler$.apply(Compiler.scala:65)
        at sbt.Defaults$.sbt$Defaults$$compileTaskImpl(Defaults.scala:789)
        at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:781)
        at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:781)
        at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
        at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
        at sbt.std.Transform$$anon$4.work(System.scala:63)
        at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
        at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
        at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
        at sbt.Execute.work(Execute.scala:235)
        at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
        at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
        at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
        at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
        at sbt.inc.TextAnalysisFormat$ObjectStringifier$$anonfun$34.apply(TextAnalysisFormat.scala:334)
        at sbt.inc.TextAnalysisFormat$ObjectStringifier$$anonfun$34.apply(TextAnalysisFormat.scala:334)
        at sbt.inc.FormatTimer$.aggregate(TextAnalysisFormat.scala:18)
        at sbt.inc.TextAnalysisFormat$ObjectStringifier$.stringToObj(TextAnalysisFormat.scala:334)
        at sbt.inc.TextAnalysisFormat$APIsF$$anonfun$14.apply(TextAnalysisFormat.scala:212)
        at sbt.inc.TextAnalysisFormat$APIsF$$anonfun$14.apply(TextAnalysisFormat.scala:212)
        at sbt.inc.TextAnalysisFormat$.sbt$inc$TextAnalysisFormat$$toPair$1(TextAnalysisFormat.scala:395)
        at sbt.inc.TextAnalysisFormat$$anonfun$sbt$inc$TextAnalysisFormat$$readPairs$1.apply(TextAnalysisFormat.scala:400)
        at sbt.inc.TextAnalysisFormat$$anonfun$sbt$inc$TextAnalysisFormat$$readPairs$1.apply(TextAnalysisFormat.scala:400)
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
        at scala.collection.immutable.Range.foreach(Range.scala:141)
        at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
        at scala.collection.AbstractTraversable.map(Traversable.scala:105)
        at sbt.inc.TextAnalysisFormat$.sbt$inc$TextAnalysisFormat$$readPairs(TextAnalysisFormat.scala:400)
        at sbt.inc.TextAnalysisFormat$.sbt$inc$TextAnalysisFormat$$readMap(TextAnalysisFormat.scala:404)
        at sbt.inc.TextAnalysisFormat$APIsF$.read(TextAnalysisFormat.scala:224)
        at sbt.inc.TextAnalysisFormat$$anonfun$4.apply(TextAnalysisFormat.scala:75)
        at sbt.inc.TextAnalysisFormat$$anonfun$4.apply(TextAnalysisFormat.scala:75)
        at sbt.inc.FormatTimer$.aggregate(TextAnalysisFormat.scala:18)
        at sbt.inc.FormatTimer$.time(TextAnalysisFormat.scala:25)
        at sbt.inc.TextAnalysisFormat$.read(TextAnalysisFormat.scala:75)
        at sbt.inc.FileBasedStore$$anon$1$$anonfun$getUncaught$1.apply(FileBasedStore.scala:18)
        at sbt.inc.FileBasedStore$$anon$1$$anonfun$getUncaught$1.apply(FileBasedStore.scala:18)
        at sbt.Using.apply(Using.scala:24)
        at sbt.inc.FileBasedStore$$anon$1.getUncaught(FileBasedStore.scala:18)
        at sbt.inc.FileBasedStore$$anon$1.get(FileBasedStore.scala:16)
        at sbt.inc.AnalysisStore$$anon$1.get(AnalysisStore.scala:22)
        at sbt.inc.AnalysisStore$$anon$2.get(AnalysisStore.scala:28)
        at sbt.compiler.AggressiveCompile.compile1(AggressiveCompile.scala:64)
        at sbt.compiler.AggressiveCompile.apply(AggressiveCompile.scala:45)
        at sbt.Compiler$.apply(Compiler.scala:74)
        at sbt.Compiler$.apply(Compiler.scala:65)
        at sbt.Defaults$.sbt$Defaults$$compileTaskImpl(Defaults.scala:789)
        at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:781)
        at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:781)
        at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
        at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
        at sbt.std.Transform$$anon$4.work(System.scala:63)
        at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
        at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
        at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
        at sbt.Execute.work(Execute.scala:235)
        at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
        at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
        at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
        at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
[error] (compile:compile) java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.