Giter VIP home page Giter VIP logo

scala-maven-plugin's Introduction

Scala Maven Plugin

ci Code Quality: Java Total Alerts Maven Central

The scala-maven-plugin (previously maven-scala-plugin) is used for compiling/testing/running/documenting Scala code in Maven.

Similar plugins

Build

Currently, you need Maven 3.x & JDK 8 to build the plugin, create the site, and run integration-test.

Commands

  • ./mvnw package : generate jar
  • ./mvnw site : generate the plugin website
  • ./mvnw integration-test : ./mvnw package + run all integration test
    • note: to run test_scalaHome: you have to set scala.home property in src/it/test_scalaHome/pom.xml to correspond to your environment. See Build section above for a simple setup.
  • ./mvnw integration-test -Dinvoker.test=test1 : run integration test 'test1' (against all configuration) useful for tuning/debug
  • ./mvnw install : ./mvnw integration-test` + publish on local maven repository
  • ./mvnw install -Dmaven.test.skip=true : ./mvnw install` without run of unit test and run of integration test
  • release :
    • gpg --use-agent --armor --detach-sign --output $(mktemp) pom.xml to avoid issue on macosx with gpg signature see [MGPG-59] GPG Plugin: "gpg: signing failed: Inappropriate ioctl for device" - ASF JIRA
    • ./mvnw release:clean && ./mvnw release:prepare && ./mvnw release:perform : to publish on staging repository via plugin
    • ./mvnw release:clean && ./mvnw release:prepare -Darguments="-DskipTests -Dmaven.test.skip=true" && ./mvnw release:perform -Darguments="-DskipTests -Dmaven.test.skip=true" to publish without tests (integration test require 30min on CI)
    • ./mvnw site package source:jar javadoc:jar install:install gpg:sign deploy:deploy changes:announcement-generate -Dmaven.test.skip=true -DperformRelease=true : manual
    • connect to http://oss.sonatype.org/ close and release the request(about scala-maven-plugin) in staging repositories
    • browse the updated mvnsite (check version into samples, ...)

TODO

scala-maven-plugin's People

Contributors

ashawley avatar bennetelli avatar brandonbyskov avatar cmsr avatar davidb avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar evantill avatar gzm55 avatar indrajitr avatar isomarcte avatar jstrachan avatar jsuereth avatar jthurne avatar justwrote avatar klaren avatar liry avatar matthewedge avatar mephi42 avatar mpilquist avatar pvlugter avatar pvodra avatar pzygielo avatar rajcspsg avatar robsonpeixoto avatar scrapcodes avatar sirmax avatar slandelle avatar sullis 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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

scala-maven-plugin's Issues

Provide option to use FSC in scala:compile goal

For multi-module Scala projects that have multiple compile phases, it would be great to be able to use FSC to speed up the compilation.

Even better would be if the FSC server could be started if one is not running.

mvn compile fails with InvocationTargetException

When I run mvn compile on our scala project I get the error message attached below. Note that when compiled manually there are no problems.

This happens on Mac OS 10.5 with a MacBook and MacBook Pro. I haven't tested it on other architectures. I'm happy to provide a source package with pom file in order to reproduce this. One could also checkout

hg clone https://factorie.googlecode.com/hg/ factorie

and go to revision 246 (this is where it stopped working)

hg update -C -r 246; mvn clean compile

In revision 245 it works just fine.

I'm sorry I can't give a more condensed scenario for the error. The change from 245 to 246 involved several files, and the error message doesn't give much away in terms of which file causes the problem.

durer:factorie-0.8.1-SNAPSHOT riedel$ mvn clean compile
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - cc.factorie:factorie:jar:0.8.1-SNAPSHOT
[INFO] task-segment: [clean, compile]
[INFO] ------------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] Deleting directory /private/tmp/factorie-0.8.1-SNAPSHOT/target
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (MacRoman actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /private/tmp/factorie-0.8.1-SNAPSHOT/src/main/resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Compiling 2 source files to /private/tmp/factorie-0.8.1-SNAPSHOT/target/classes
[INFO] [scala:compile {execution: default}]
[INFO] Checking for multiple versions of scala
[WARNING] Multiple versions of scala libraries detected!
[INFO] includes = [/*.scala,/*.java,]
[INFO] excludes = []
[INFO] /private/tmp/factorie-0.8.1-SNAPSHOT/src/main/java:-1: info: compiling

[INFO] /private/tmp/factorie-0.8.1-SNAPSHOT/src/main/scala:-1: info: compiling

[INFO] Compiling 91 source files to /private/tmp/factorie-0.8.1-SNAPSHOT/target/classes at 1262621758108
[INFO] java.lang.reflect.InvocationTargetException
[INFO] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[INFO] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[INFO] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[INFO] at java.lang.reflect.Method.invoke(Method.java:592)
[INFO] at org_scala_tools_maven_executions.MainHelper.runMain(MainHelper.java:151)
[INFO] at org_scala_tools_maven_executions.MainWithArgsInFile.main(MainWithArgsInFile.java:26)
[INFO] Caused by: java.lang.NullPointerException
[INFO] at scala.tools.nsc.symtab.Types$ClassInfoType.scala$tools$nsc$symtab$Types$ClassInfoType$$getRefs(Types.scala:1245)
[INFO] at scala.tools.nsc.symtab.Types$ClassInfoType$$anonfun$scala$tools$nsc$symtab$Types$ClassInfoType$$propagate$2$$anonfun$apply$4.apply(Types.scala:1319)
[INFO] at scala.tools.nsc.symtab.Types$ClassInfoType$$anonfun$scala$tools$nsc$symtab$Types$ClassInfoType$$propagate$2$$anonfun$apply$4.apply(Types.scala:1317)
[INFO] at scala.Iterator$class.foreach(Iterator.scala:414)
[INFO] at scala.collection.mutable.ResizableArray$$anon$1.foreach(ResizableArray.scala:66)
[INFO] at scala.Iterable$class.foreach(Iterable.scala:256)
[INFO] at scala.collection.immutable.HashSet.foreach(HashSet.scala:39)
[INFO] at scala.tools.nsc.symtab.Types$ClassInfoType$$anonfun$scala$tools$nsc$symtab$Types$ClassInfoType$$propagate$2.apply(Types.scala:1317)
[INFO] at scala.tools.nsc.symtab.Types$ClassInfoType$$anonfun$scala$tools$nsc$symtab$Types$ClassInfoType$$propagate$2.apply(Types.scala:1316)
[INFO] at scala.Iterator$class.foreach(Iterator.scala:414)
[INFO] at scala.Iterator$$anon$7.foreach(Iterator.scala:36)
[INFO] at scala.tools.nsc.symtab.Types$ClassInfoType.scala$tools$nsc$symtab$Types$ClassInfoType$$propagate(Types.scala:1316)
[INFO] at scala.tools.nsc.symtab.Types$ClassInfoType$$anonfun$scala$tools$nsc$symtab$Types$ClassInfoType$$propagate$1$$anonfun$apply$3.apply(Types.scala:1312)
[INFO] at scala.tools.nsc.symtab.Types$ClassInfoType$$anonfun$scala$tools$nsc$symtab$Types$ClassInfoType$$propagate$1$$anonfun$apply$3.apply(Types.scala:1309)
[INFO] at scala.Iterator$class.foreach(Iterator.scala:414)
[INFO] at scala.runtime.BoxedArray$AnyIterator.foreach(BoxedArray.scala:45)
[INFO] at scala.Iterable$class.foreach(Iterable.scala:256)
[INFO] at scala.collection.immutable.Set3.foreach(Set3.scala:20)
[INFO] at scala.tools.nsc.symtab.Types$ClassInfoType$$anonfun$scala$tools$nsc$symtab$Types$ClassInfoType$$propagate$1.apply(Types.scala:1309)
[INFO] at scala.tools.nsc.symtab.Types$ClassInfoType$$anonfun$scala$tools$nsc$symtab$Types$ClassInfoType$$propagate$1.apply(Types.scala:1308)
[INFO] at scala.Iterator$class.foreach(Iterator.scala:414)
[INFO] at scala.Iterator$$anon$7.foreach(Iterator.scala:36)
[INFO] at scala.tools.nsc.symtab.Types$ClassInfoType.scala$tools$nsc$symtab$Types$ClassInfoType$$propagate(Types.scala:1308)
[INFO] at scala.tools.nsc.symtab.Types$ClassInfoType$$anonfun$scala$tools$nsc$symtab$Types$ClassInfoType$$propagate$1$$anonfun$apply$3.apply(Types.scala:1312)
[INFO] at scala.tools.nsc.symtab.Types$ClassInfoType$$anonfun$scala$tools$nsc$symtab$Types$ClassInfoType$$propagate$1$$anonfun$apply$3.apply(Types.scala:1309)
[INFO] at scala.Iterator$class.foreach(Iterator.scala:414)
[INFO] at scala.collection.mutable.ResizableArray$$anon$1.foreach(ResizableArray.scala:66)
[INFO] at scala.Iterable$class.foreach(Iterable.scala:256)
[INFO] at scala.collection.immutable.HashSet.foreach(HashSet.scala:39)
[INFO] at scala.tools.nsc.symtab.Types$ClassInfoType$$anonfun$scala$tools$nsc$symtab$Types$ClassInfoType$$propagate$1.apply(Types.scala:1309)
[INFO] at scala.tools.nsc.symtab.Types$ClassInfoType$$anonfun$scala$tools$nsc$symtab$Types$ClassInfoType$$propagate$1.apply(Types.scala:1308)
[INFO] at scala.Iterator$class.foreach(Iterator.scala:414)
[INFO] at scala.Iterator$$anon$7.foreach(Iterator.scala:36)
[INFO] at scala.tools.nsc.symtab.Types$ClassInfoType.scala$tools$nsc$symtab$Types$ClassInfoType$$propagate(Types.scala:1308)
[INFO] at scala.tools.nsc.symtab.Types$ClassInfoType.expansiveRefs(Types.scala:1223)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$checkFinitary$1.apply(Typers.scala:1059)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$checkFinitary$1.apply(Typers.scala:1058)
[INFO] at scala.List.foreach(List.scala:841)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.checkFinitary(Typers.scala:1058)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1216)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1090)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:3088)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:3358)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:3106)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:3358)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:3395)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:1598)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$19.apply(Typers.scala:1643)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$19.apply(Typers.scala:1643)
[INFO] at scala.List$.loop$1(List.scala:300)
[INFO] at scala.List$.mapConserve(List.scala:317)
[INFO] at scala.List$.loop$1(List.scala:304)
[INFO] at scala.List$.mapConserve(List.scala:317)
[INFO] at scala.List$.loop$1(List.scala:304)
[INFO] at scala.List$.mapConserve(List.scala:317)
[INFO] at scala.List$.loop$1(List.scala:304)
[INFO] at scala.List$.mapConserve(List.scala:317)
[INFO] at scala.List$.loop$1(List.scala:304)
[INFO] at scala.List$.mapConserve(List.scala:317)
[INFO] at scala.List$.loop$1(List.scala:304)
[INFO] at scala.List$.mapConserve(List.scala:317)
[INFO] at scala.List$.loop$1(List.scala:304)
[INFO] at scala.List$.mapConserve(List.scala:317)
[INFO] at scala.List$.loop$1(List.scala:304)
[INFO] at scala.List$.mapConserve(List.scala:317)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:1643)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:3084)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:3358)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:3395)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:1598)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$19.apply(Typers.scala:1643)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$19.apply(Typers.scala:1643)
[INFO] at scala.List$.loop$1(List.scala:300)
[INFO] at scala.List$.mapConserve(List.scala:317)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:1643)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:3084)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:3358)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:3395)
[INFO] at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$2.apply(Analyzer.scala:41)
[INFO] at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:267)
[INFO] at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:246)
[INFO] at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:246)
[INFO] at scala.Iterator$class.foreach(Iterator.scala:414)
[INFO] at scala.collection.mutable.ListBuffer$$anon$1.foreach(ListBuffer.scala:266)
[INFO] at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:246)
[INFO] at scala.tools.nsc.Global$Run.compileSources(Global.scala:574)
[INFO] at scala.tools.nsc.Global$Run.compile(Global.scala:667)
[INFO] at scala.tools.nsc.Main$.process(Main.scala:73)
[INFO] at scala.tools.nsc.Main$.main(Main.scala:87)
[INFO] at scala.tools.nsc.Main.main(Main.scala)
[INFO] ... 6 more
[INFO] prepare-compile in 0 s
[INFO] compile in 6 s
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11 seconds
[INFO] Finished at: Mon Jan 04 11:16:04 EST 2010
[INFO] Final Memory: 18M/33M
[INFO] ------------------------------------------------------------------------

Order of scala + java compilation is non-deterministic

When compiling a mixed java+scala project the order of compilation is non-deterministic. In our project we have a number of auto generated java source files that are used by the scala code. In most cases compilation works if using "mvn test" or "mvn install". On some platforms though the order of operations is different (windows vs. linux) or if we change the "goal" the order seems to reverse. We have been able to workaround the issue by doing cleans and changing goals until it works but is there a way to fix the order to always come before java compilation?

Run script in execution doesn't work

I just read in the Maven Handbook (http://www.sonatype.com/books/mcookbook/reference/sect-scala-script-inline.html) that it's possible to run a scala script inside the Maven Scala Plugin. I tried the example in the book, which doesn't work. Altering the script to a hello world also doesn't work.
Tried different versions of Scala (Scala 2.7.0, Scala 2.7.3, Scala 2.8.RC2) and different versions of the Maven Scala Plugin. But i always get the following error to run any script inside the MSP:
java.lang.NoClassDefFoundError: scala/ScalaObject

Steps to reproduce:
create scala maven project from archetype 1.2, add the following execution to the executions-tag of the maven scala plugin:

<execution>
  <id>prepare-package</id>
  <phase>prepare-package</phase>
  <goals>
    <goal>script</goal>
  </goals>
  <configuration>
    <scalaVersion>${scala.version}</scalaVersion>
    <keepGeneratedScript>true</keepGeneratedScript>
    <script>
    <![CDATA[
      println("hello from scala script")
    ]]>
    </script>
  </configuration>
</execution>

Then, run "mvn prepare-package" from command line.

scala:doc broke with v2.11?

When I execute the scala:doc goal using the new 2.11 version of this plugin I get an error from Maven saying that the goal doesn't exist: "Required goal not found: scala:doc in org.scala-tools:maven-scala-plugin:2.11." However, this goal is found and executes correctly with v2.10.1 and the site goal correctly generates the scaladoc in 2.11. I looked at the source code and it clearly shows "doc" as the goal in the ScalaDocMojo, so I don't know where the break down is.

Mojo default values are not being documented (and possibly not working)

While investigating an issue, I was perusing the ScalaDocMojo (src/main/java/org/scala_tools/maven/ScalaDocMojo.java), and I noticed that the reason why some default values are not being documented on pages like this:
http://www.scala-tools.org/mvnsites/maven-scala-plugin/doc-mojo.html#linksource
is because the mojo says "default" instead of "default-value". For example, check out lines 89-94:

/**
 * Generate source in HTML
 *
 * @parameter expression="${linksource}" default="true"
 */
protected boolean linksource;

If you rename "default" to "default-value", the default value will be documented. (My guess is that you are having problems with default values since Plexus won't be setting it -- not totally sure.)

Note that this seems to be incorrect for several parameters, and probably for various Mojos. I suggest a grep to find them.

The Maven documentation to back this up is:
http://maven.apache.org/guides/plugin/guide-java-plugin-development.html
See the "Defining Parameters Within a Mojo" section.

Continuous compilation after compilation error

I use mvn scala:cc and it works very well and fast, however if there
is a compilation error it exits and shuts down fsc.

Since it takes quite a bit of time to start everything through maven,
this slows me down. I've been running the mvn task in a while loop,
but that seems silly.

I'd like to be able to do one of:

  1. Have the task keep fsc running and attempt to compile again after a
    failure the next time it detects a file change.
  2. Same as 1, except wait for console input, e.g. after I fix the
    compilation error, I return to the console and hit enter.

Are either of these options possible?

Alex Neth

2.13-release ignores -DemacsMode=true

Have to explicitly specify 2.12.

To remind you, what this flag does is to inhibit the [ERROR] or [INFO] which otherwise prefixes compilation messages. If these are present, emacs (at least for me) is unable to interpret the messages (and take me to the corr'ding location in the relevant source file).

[Enhancement] provide something like "~ test" or "~ test-only *Foo" in sbt

given scala:cc as a goal, how about scala:cctest?

It would work just like scala:cc but when a compile works, it would run "mvn test". Can take an optional parameter like "mvn test" can to filter tests.

e.g. to do continuous compile & testing of code you could type...

mvn scala:cctest -Dtest=MyTest

which would run the "MyTest" test case only whenever the compile worked

scala:doc in 2.14 broken for Java + Scala (works with 2.13.1)

I just upgraded from 2.13.1 to 2.14 and my scala:doc is broken. Output looks something like this:

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building My Application
[INFO]    task-segment: [scala:doc]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing scala:doc
[INFO] [jaxws:wsimport {execution: wsdl-client}]
[INFO] [scala:doc {execution: default-cli}]
[INFO] Checking for multiple versions of scala
[INFO] Checking for multiple versions of scala
C:\workspaces\my-app\src\main\scala\com\acme\app\snippet\FILE.scala:17: error: value file is not a     member of package com.acme
import com.acme.file.{Wrapper, WrapperService}
                        ^
Jul 4, 2010 11:37:40 AM org.scala_tools.vscaladoc.HtmlRenderer render
INFO: write page for overview
Jul 4, 2010 11:37:40 AM org.scala_tools.vscaladoc.HtmlRenderer render
INFO: write page for all-classes (list)
Jul 4, 2010 11:37:41 AM org.scala_tools.vscaladoc.HtmlRenderer render
INFO: write index.html
Jul 4, 2010 11:37:41 AM org.scala_tools.vscaladoc.HtmlRenderer render
INFO: write doc for  each classes
one error found
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] wrap: org.apache.maven.reporting.MavenReportException: wrap: Process exited with an error: 1(Exit value: 1)

[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 51 seconds
[INFO] Finished at: Sun Jul 04 11:37:45 PDT 2010
[INFO] Final Memory: 34M/60M
[INFO] ------------------------------------------------------------------------

A unique thing about this project is that it leverages the jaxws-maven-plugin to generate java stubs for a wsdl. It looks like that java code is half integrated into the scaladoc run. I believe that with 2.13.1, the java code ends up in Javadoc, while the scala code ends up in Scaladoc.

[Enhancement] Please add <workingDirectory> element.

It's sometimes important, e.g. when working with Spring-based web applications, to be able to set the working directory appropriately so that filesystem resources as well as classpath resources are resolved correctly.

Class incorrectly reloaded in scala:console with :replay

It seems that classes are incorrectly reloaded in the maven scala
console when issuing a :replay command.

// file: Foo.scala
class Foo { def m = 1 }
// end file

scala> val f = new Foo
..
scala> f.m
res0: Int = 1

then change Foo.scala to
// file: Foo.scala
class Foo { def m = 2 }
// end file

compile, and issue a replay in the same scala console
scala> :replay
..
scala>f.m
res0: Int = 1 // Should be 2

When adding new methods they are correctly added in the reloaded class
from which I conclude that the new class is actually reloaded.

I do not see the same problem in the bare scala REPL and neither in
the sbt console.

I see this behaviour both on Windows32 and Linux64.

Cannot create Scaladoc on mixed Scala 2.8/Java project

Like already diskussed in Scala User mailing list:
In a simple mixed Java/Scala application, its not possible to build the Scaladoc. Scaladoc cannot find any Javaclasses.

I built a very simple example (with one Java and one Scala class) to demonstrate that issue. You can download it here:
http://github.com/downloads/ifischer/Teachernews/ScaladocTest.zip

Running mvn scala:doc on that example gives an error:


D:\Workspace\Scala\ScaladocTest\src\main\scala\HelloScala.scala:2: error: not found: type HelloJava
  val hj = new HelloJava
               ^
one error found

Whereas compiling the project and running the main method in Scala (which depends on the Java-class) by typing "mvn scala:run" works fine.

No JLineReader in scala:console

Since scala 2.9.0 when starting the scala console through
mvn scala:console
I get:
...
Failed to created JLineReader: java.lang.NoClassDefFoundError: scala/
tools/jline/console/completer/Completer
Falling back to SimpleReader.
Welcome to Scala version 2.9.0.1 (Java HotSpot(TM) Client VM, Java
1.6.0_25).
Type in expressions to have them evaluated.
Type :help for more information.

Commandline history works, but there is no code completion like there
is in scala's console.

Skipping "add-source" goal and removing redundant reference to maven-compiler-plugin

Just curious about the recommendations for mixed java/scala projects.

  • "add-source" goal appears redundant since ScalaCompileMojo does a quick fix in case the user didn't do that. Is it still recommended to have the "add-source" goal added during the "process-resources" phase (but the CompileMojo would do the needful even if one didn't)?
  • It seems explicitly activating maven-compiler-plugin isn't necessary and is active by default during the compile phase as seen by looking at the effective-pom (mvn help:effective-pom). Is it still a recommendation or one can do away with that?

For reference, mvn verify still goes through with these changes:
http://github.com/indrajitr/maven-scala-plugin/commit/fc5aa0f3898d9aa811d20ef0a1fe2a0198290a0b

Make compiling Scala scripts more convenient

Currently, compiling several Scala scripts with scala:compile is quite inconvenient. (Yes, there are cases where you cannot simply easily make the scripts into Application, since they are, e.g., generated automatically.)
The problem is that each script needs its own plugin execution with its own include and args block:

Script1.scala


-Xscript
org.example.Script1

This is not only cumbersome, but also leads to problems if multiple scripts reside within the same directory as they share the same $DIRNAME.timestamp: only the first execution compiles its script; the others mistakenly think that nothing needs to be compiled.
I think the easiest solution to this would be a separate scala:compile-script goal.

maven-scala-plugin does not appear to work with snapshot version of scala-library and scala-compiler

I've been struggling to get maven-scala-plugin to work with the 2.8.0-SNAPSHOT version.

My pom.xml includes the snapshot repo, and I can see the snapshot versions being downloaded. But when the plugin tries to run it errors saying it cannot find the correct version:
org.scala-lang:scala-compiler:jar:2.8.0-20090731.003521-188

My pom.xml has:

org.scala-tools
maven-scala-plugin
2.12-SNAPSHOT


scala-compile-first
process-resources

add-source
compile



scala-test-compile
process-test-resources

testCompile





org.scala-lang
scala-compiler

2.8.0-SNAPSHOT


However, the latest versions on scala-tools.org for the compiler and library are out of sync. I'll attach a capture of stdout that shows what's happening. If you take a look at http://scala-tools.org/repo-snapshots/org/scala-lang/scala-library/2.8.0-SNAPSHOT/ and http://scala-tools.org/repo-snapshots/org/scala-lang/scala-compiler/2.8.0-SNAPSHOT/ you'll notice that the latest version for the snapshots do not match.

wrong version of scala-compiler

My configuration:

<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<version>LATEST</version>
<executions>
    <execution>
        <goals>
            <goal>compile</goal>
            <goal>testCompile</goal>
        </goals>
    </execution>    
</executions>
</plugin>

and when run mvn clean compile:

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] wrap: org.apache.maven.artifact.resolver.ArtifactNotFoundException: Unable to download the artifact from any repository

Try downloading the file manually from the project website.

Then, install it using the command: 
mvn install:install-file -DgroupId=org.scala-lang -DartifactId=scala-compiler     -Dversion=0.0.0 -Dpackaging=jar -Dfile=/path/to/file

Alternatively, if you host your own repository you can deploy the file there: 
mvn deploy:deploy-file -DgroupId=org.scala-lang -DartifactId=scala-compiler -Dversion=0.0.0 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]

So as you can see plugin version 2.15.2 need scala-compiler 0.0.0. Same error for plugin 2.14.1 and above.

Can't use the Maven Project from within a script

... moving over from mailing list discussion [1]

Here is the type of failure I keep getting whenever I try to use the
"project" or "log" values:
[INFO] [scala:script {execution: default}]
[INFO] Checking for multiple versions of scala
[INFO] use java command with args in file forced : false
C:\ecosystem\workspace\swaddle-maven-plugin\target.scalaScriptGen\embeddedScript_1.scala:4:
error: not found: value project
println(project.getName+" is the current project")
^
one error found

[1] http://groups.google.com/group/maven-and-scala/browse_thread/thread/475fbaca6724852/b3c40ad4eb567cbd?lnk=gst&q=script#b3c40ad4eb567cbd

problem building with a clean checkout

I get the following error trying to build master.

[INFO] Building: vscaladocOnMultiModules/pom.xml
[INFO] ...FAILED. The build exited with code 1. See /home/gatoatigrado/sandbox/maven-scala-plugin/src/it/vscaladocOnMultiModules/build.log for details.

cat /home/gatoatigrado/sandbox/maven-scala-plugin/src/it/vscaladocOnMultiModules/build.log

Embedded error: Error rendering Maven report: wrap: Unable to download the artifact from any repository

Thanks in advance,
Nicholas

scala:doc: calls aggregate regardless of whether scaladoc implementation can handle it

In a multi-module project, scala:doc fails after the last module. The aggregate method should only be called for generators that understand it (i.e., vscaladoc).

For example, executing mvn scala:doc on http://github.com/alandipert/step/commit/d79b67f:

[INFO] aggregate vscaladoc from : /home/ross/src/scalatra/core/target/site/scaladocs:/home/ross/src/scalatra/example/target/site/scaladocs:
[INFO] Checking for multiple versions of scala
scalac error: bad option: '-aggregate'
scalac -help gives more information

I get NPE when depending on a scala jar which uses <dependencyManagement> in a parent pom.xml to describe dependencies

When I try building a project using a dependency on...

<dependency>
  <groupId>org.fusesource.scalate</groupId>
  <artifactId>scalate-core</artifactId>
  <version>1.0</version>
</dependency>

I get the exception below. It seems to be due to scalate-core depending on logback-classic which the version number is specified in the parent pom.xml's section (so there's no version specified in the actual scalate-core pom.xml)

Here's the pom:
http://repo2.maven.org/maven2/org/fusesource/scalate/scalate-core/1.0/scalate-core-1.0.pom

here's the parent pom:
http://repo2.maven.org/maven2/org/fusesource/scalate/scalate-project/1.0/scalate-project-1.0.pom

here's the exception:

java.lang.NullPointerException: version was null for ch.qos.logback:logback-classic
at org.apache.maven.artifact.DefaultArtifact.getBaseVersion(DefaultArtifact.java:390)
at org.apache.maven.artifact.DefaultArtifact.getId(DefaultArtifact.java:225)
at org.apache.maven.shared.dependency.tree.DependencyTreeResolutionListener.manageArtifactScope(DependencyTreeResolutionListener.java:362)
at org.apache.maven.artifact.resolver.DefaultArtifactCollector.fireEvent(DefaultArtifactCollector.java:574)
at org.apache.maven.artifact.resolver.DefaultArtifactCollector.fireEvent(DefaultArtifactCollector.java:527)
at org.apache.maven.artifact.resolver.DefaultArtifactCollector.manageArtifact(DefaultArtifactCollector.java:465)
at org.apache.maven.artifact.resolver.DefaultArtifactCollector.recurse(DefaultArtifactCollector.java:315)
at org.apache.maven.artifact.resolver.DefaultArtifactCollector.recurse(DefaultArtifactCollector.java:435)
at org.apache.maven.artifact.resolver.DefaultArtifactCollector.collect(DefaultArtifactCollector.java:74)
at org.apache.maven.shared.dependency.tree.DefaultDependencyTreeBuilder.buildDependencyTree(DefaultDependencyTreeBuilder.java:97)
at org_scala_tools_maven.ScalaMojoSupport.checkCorrectVersionsOfScalaLibrary(ScalaMojoSupport.java:396)
at org_scala_tools_maven.ScalaMojoSupport.checkScalaVersion(ScalaMojoSupport.java:387)
at org_scala_tools_maven.ScalaMojoSupport.execute(ScalaMojoSupport.java:322)
at org_scala_tools_maven.ScalaCompilerSupport.execute(ScalaCompilerSupport.java:33)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

Scaladoc not picking up generated sources

I did some investigating and found that scaladoc is not picking up the generated sources directories when run by itself. If I ran "mvn compile scala:doc" the documents would get produced correctly. If I ran "mvn generate-sources scada:doc" it would work. Running just "mvn scala:doc" would fail because it wasn't seeing the list of generated sources even though that phase was being executed.

The problem is the way generate-sources gets run: "@execute phase="generate-sources"". According to the documentation at: http://maven.apache.org/developers/mojo-api-specification.html, using the @execute annotation spawns a "sub maven" that has a different project object (i verified this manually). So the source generators all correctly add their generated directories to the project object they are given but this is not the same as the one used by scala-doc. The result of that project are available as a different parameter.

/**
 * @parameter expression="${executedProject}"
 * @required
 * @readonly
 */
protected MavenProject executedProject;

I found that in my case if i then used the executedProject reference rather than the regular project in getSourceDirectories I was able to generate scala:doc using just the one command. I am not a maven expert (though I know alot more than I did yesterday) so I wasn't sure the reprocusions of the other executedProject and how the results should be merged together or which reference should be used for which call. I'm not sure what the right solution is but I don't think this is doing what you expected.

Ensure "generate-sources" phase is executed before scala:doc

Ensure that some preliminary lifecycle phase is executed before execution of scala:doc.

To start with we can have generate-sources for the following reasons:

  • It allows source files (generated from template, for example) to be available for scala:doc
  • Makes scala:doc consistent and better aligned with javadoc:javadoc
  • Allows one to inject additional validation or initialization related goals. Since the phases validate and initialize are automatically available.

[bug] configuration tag under executions/execution/ is ignored

the following example doesn't used jvmArgs and args to run forked compilation,...

<plugin>
      <groupId>org.scala-tools</groupId>
      <artifactId>maven-scala-plugin</artifactId>
      <executions>
        <execution>
          <goals>
            <goal>compile</goal>
            <goal>testCompile</goal>
          </goals>
          <configuration>
            <jvmArgs>
              <jvmArg>-Xmx1024m</jvmArg>
              <jvmArg>-Xms512m</jvmArg>
              <jvmArg>-Xss4m</jvmArg>
              <jvmArg>${addCompileJvmArg}</jvmArg>
            </jvmArgs>
            <args>
              <arg>-target:jvm-${java.src.version}</arg>
              <arg>-deprecation</arg>
              <!--arg>-unchecked</arg-->
              <arg>-encoding</arg>
              <arg>${encoding}</arg>
              <!--arg>-verbose</arg-->
            </args>
          </configuration>
        </execution>
      </executions>
    </plugin>

compilerPlugin feature is setting wrong jars on command line

Hi David and Josh,

I'm having some trouble with the maven scala plugin; it doesn't seem to be setting the -Xplugin line correctly when I try to build a project [1]. The configuration passed to the maven-scala-plugin is [2]. I'm running $(mvn install -Dmaven.scala.displayCmd=true).

Feel free to look at the pom.xml files if you want [3], but don't feel obliged... I haven't done proper Scala / Java separation yet (among other things to clean it up).

Thanks so much!
Nicholas
https://ntung.com

[1]
version 2.10 gives
-Xplugin:/home/gatoatigrado/.m2/repository/org/scala-tools/maven-scala-plugin/2.10/maven-scala-plugin-2.10.jar

version 2.11 gives
-Xplugin:/home/gatoatigrado/.m2/repository/xom/xom/1.1/xom-1.1.jar

the correct version should be
-Xplugin:/home/gatoatigrado/.m2/repository/edu/berkeley/cs/sketch/skalch-plugin/git-master/skalch-plugin-git-master.jar

[2]

edu.berkeley.cs.sketch
skalch-plugin
git-master

[3] http://github.com/gatoatigrado/skalch/tree/master

[bug] NPE

java.lang.NullPointerException
at org.scala_tools.maven.executions.JavaMainCallerByFork.lengthOf(JavaMainCallerByFork.java:98)
at org.scala_tools.maven.executions.JavaMainCallerByFork.buildCommand(JavaMainCallerByFork.java:79)
at org.scala_tools.maven.executions.JavaMainCallerByFork.run(JavaMainCallerByFork.java:47)
at org.scala_tools.maven.ScalaCompilerSupport.compile(ScalaCompilerSupport.java:151)
at org.scala_tools.maven.ScalaCompilerSupport.doExecute(ScalaCompilerSupport.java:93)
at org.scala_tools.maven.ScalaMojoSupport.execute(ScalaMojoSupport.java:323)
at org.scala_tools.maven.ScalaCompilerSupport.execute(ScalaCompilerSupport.java:33)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)

scala:doc command failing on scala 2.8-SNAPSHOT

I setup a simple maven scala project which builds correctly, but when I do "mvn scala:doc" I get the error below:

[INFO] Checking for multiple versions of scala
scalac error: Parameter '-bottom' is not recognised by Scalac.
scalac -help gives more information
scalac error: bad option: '-bottom'
scalac -help gives more information
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------

[INFO] wrap: org.apache.maven.reporting.MavenReportException: wrap: Process exited with an error: 1(Exit value: 1)

I pasted the full output of a successful "clean install" command, and a couple versions of the failed "scala:doc" command along with one of the arg files that is used at:
http://gist.github.com/253190

I also posted the maven project i am trying to build at:
http://github.com/charliek/scala-test

I am using sun jdk 1.6.0_17, and the current scala-2.8-SNAPSHOT. I tried using the stable version of the maven-scala-plugin, the current snapshot, and the git version but have run into the same error in each place.

Please let me know if I can provide any further information. I am new to scala and its maven setup, but things are setup like I have seen in other places and googling has not gotten me anywhere.

maven-scala-plugin ignores <fork> and <jvmArgs>

At least it does upon mvn scala:console. I was trying to fork the console so I could pass -Duser.dir="..." to the JVM to set the working directory, but I got warnings about -classpath and jvmArgs being ignored while running in-process, even though I'd explicitly used true.

error with 2.8.0-SNAPSOT on windows

mvn scala:run -DmainClass=Metadata2Sqlldr5
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Test for Java + Scala compilation
[INFO] task-segment: [scala:run]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing scala:run
[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 7 resources
[INFO] [scala:add-source {execution: scala-compile-first}]
[INFO] Add Source directory: C:\Documents and Settings\u0103223\dev\scala-xml-to-sqlldr\src\main\scala
[INFO] Add Test Source directory: C:\Documents and Settings\u0103223\dev\scala-xml-to-sqlldr\src\test\scala
[INFO] [scala:compile {execution: scala-compile-first}]
[INFO] Checking for multiple versions of scala
[INFO] includes = [/*.scala,/*.java,]
[INFO] excludes = []
[INFO] Compiling 2 source files to C:\Documents and Settings\u0103223\dev\scala-xml-to-sqlldr\target\classes
[INFO] use scala command with args in file
Exception in thread "main" scala.tools.nsc.FatalError: C:Documents and Settingsu0103223devscala-xml-to-sqlldr argetclasses does not exist or is not a directory
at scala.tools.nsc.Settings$OutputDirs.checkDir(Settings.scala:258)
at scala.tools.nsc.Settings$OutputDirs.setSingleOutput(Settings.scala:267)
at scala.tools.nsc.Settings$OutputSetting.value_$eq(Settings.scala:520)
at scala.tools.nsc.Settings$OutputSetting.value_$eq(Settings.scala:513)
at scala.tools.nsc.Settings$StringSetting.tryToSet(Settings.scala:500)
at scala.tools.nsc.Settings$$anonfun$parseNormalArg$1$1$$anonfun$apply$5.apply(Settings.scala:127)
at scala.tools.nsc.Settings$$anonfun$parseNormalArg$1$1$$anonfun$apply$5.apply(Settings.scala:127)
at scala.tools.nsc.Settings.tryToSetIfExists$1(Settings.scala:103)
at scala.tools.nsc.Settings.parseNormalArg$1(Settings.scala:127)
at scala.tools.nsc.Settings.doArgs$1(Settings.scala:158)
at scala.tools.nsc.Settings.parseParams(Settings.scala:164)
at scala.tools.nsc.CompilerCommand.doOption$1(CompilerCommand.scala:101)
at scala.tools.nsc.CompilerCommand.processArguments(CompilerCommand.scala:109)
at scala.tools.nsc.CompilerCommand.(CompilerCommand.scala:123)
at scala.tools.nsc.CompilerCommand.(CompilerCommand.scala:21)
at scala.tools.nsc.Main$.process(Main.scala:48)
at scala.tools.nsc.Main$.main(Main.scala:104)
at scala.tools.nsc.Main.main(Main.scala)

scala:cc does not detect changes

The plugin doesn't seem to detect modified source files, just sits and waits infinitely after initial compilation (Version 2.13.1, windows).

Here is the log:
+ Enabling strict checksum verification on all artifact downloads.
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - ftp-test:main:jar:1.0
[INFO]    task-segment: [scala:cc]
[INFO] ------------------------------------------------------------------------
[INFO] snapshot org.scala-tools:time:2.8.0.RC1-0.2-SNAPSHOT: checking for updates from scala-tools.org
[INFO] snapshot com.github.scopt:scopt:1.0-SNAPSHOT: checking for updates from scala-tools.org
[INFO] snapshot com.osinka:mongo-scala-driver_2.8.0.RC1:0.8.0-SNAPSHOT: checking for updates from scala-tools.org
[INFO] [scala:cc]
[INFO] Checking for multiple versions of scala
[INFO] use fsc for compilation
[INFO] stop server(s)...
[Compile server exited]
[INFO] start server...
[INFO] wait for files to compile...
[INFO] H:\Distrib\Coding\Java\scala\ftp-test\main\src\main\scala:-1: info: compiling

[INFO] Compiling 6 source files to H:\Distrib\Coding\Java\scala\ftp-test\main\target\classes at 1273186004519
[WARNING] warning: there were deprecation warnings; re-run with -deprecation for details
[WARNING] one warning found

error: not found: value scalax (project)

Hi,

I would like to use scala scripts inside of Maven, so I've embedded a short Scala script like described here: http://www.sonatype.com/books/mcookbook/reference/sect-scala-script-inline.html

I got following error:

System Environment Details:

Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
Java version: 1.6.0_16
Java home: C:\Programme\Java\jdk1.6.0_16\jre
Default locale: de_DE, platform encoding: Cp1252
OS name: "windows 7" version: "6.1" arch: "x86" Family: "windows"

POM:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0                        
                             http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.sonatype.mcookbook</groupId>
  <artifactId>scala-script</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>scala-script</name>
  <dependencies>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-model</artifactId>
      <version>2.2.0</version>
    </dependency>
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-library</artifactId>
      <version>2.8.1</version>
    </dependency>
    <dependency>
      <groupId>org.scala-tools</groupId>
      <artifactId>maven-scala-plugin</artifactId>
      <version>2.15.2</version>
    </dependency>
    <dependency>
      <groupId>org.scalaforge</groupId>
      <artifactId>scalax</artifactId>
      <version>0.1</version>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.scala-tools</groupId>
        <artifactId>maven-scala-plugin</artifactId>
        <version>2.15.2</version>
        <executions>
          <execution>
            <phase>prepare-package</phase>
            <goals>
              <goal>script</goal>
            </goals>
            <configuration>
              <keepGeneratedScript>true</keepGeneratedScript>
              <script>
                <![CDATA[
        import java.io.{File,  PrintWriter, FileWriter};
        import scalax.io.FileExtras;
        import scala.collection.mutable.HashSet;
        val outputDir = project.getBuild().getOutputDirectory();
        val depsFile = new FileExtras( new File( outputDir, "deps.txt" ) )
        val pw = depsFile.printWriter
        val depSet = new HashSet[String]
        for( d <- project.getDependencies() ) {
          depSet += d.getGroupId + ":" + d.getArtifactId + ":" + d.getVersion
        }
        pw.writeLines( depSet.toSeq )
                ]]>
              </script>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <repositories>
    <repository>
      <id>scala-tools</id>
      <url>http://scala-tools.org/repo-releases/</url>
    </repository>
  </repositories>
</project>

Call:

mvn package

Stacktrace:

C:\Develop\TEST\scala-test>mvn package
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building scala-script
[INFO]    task-segment: [package]
[INFO] ------------------------------------------------------------------------
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\Develop\TEST\scala-test\src\main\resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Compiling 1 source file to C:\Develop\TEST\scala-test\target\classes
[INFO] [resources:testResources {execution: default-testResources}]
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\Develop\TEST\scala-test\src\test\resources
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] Compiling 1 source file to C:\Develop\TEST\scala-test\target\test-classes
[INFO] [surefire:test {execution: default-test}]
[INFO] Surefire report directory: C:\Develop\TEST\scala-test\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running jar.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.03 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] [scala:script {execution: default}]
[INFO] Checking for multiple versions of scala
C:\Develop\TEST\scala-test\target\.scalaScriptGen\embeddedScript_1.scala:5: error: not found: value project
          val outputDir = project.getBuild().getOutputDirectory();
                          ^
C:\Develop\TEST\scala-test\target\.scalaScriptGen\embeddedScript_1.scala:3: error: not found: value scalax
          import scalax.io.FileExtras;
                 ^
C:\Develop\TEST\scala-test\target\.scalaScriptGen\embeddedScript_1.scala:9: error: not found: value project
          for( d <- project.getDependencies() ) {
                    ^
three errors found
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] wrap: org.apache.commons.exec.ExecuteException: Process exited with an error: 1(Exit value: 1)

[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 32 seconds
[INFO] Finished at: Fri Apr 15 17:31:39 CEST 2011
[INFO] Final Memory: 27M/49M
[INFO] ------------------------------------------------------------------------
C:\Develop\TEST\scala-test>

The content of C:\Develop\TEST\scala-test\target.scalaScriptGen\embeddedScript_1.scala:

class embeddedScript_1 {
  import java.io.{File,  PrintWriter, FileWriter};
          import scalax.io.FileExtras;
          import scala.collection.mutable.HashSet;
          val outputDir = project.getBuild().getOutputDirectory();
          val depsFile = new FileExtras( new File( outputDir, "deps.txt" ) )
          val pw = depsFile.printWriter
          val depSet = new HashSet[String]
          for( d <- project.getDependencies() ) {
            depSet += d.getGroupId + ":" + d.getArtifactId + ":" + d.getVersion
          }
          pw.writeLines( depSet.toSeq )
}

Compare the generated sources! The Maven Credentials (like "project:org.scala_tools.maven.model.MavenProjectAdapter,log:org
.apache.maven.plugin.logging.Log") are missing!

Should be (see http://www.sonatype.com/books/mcookbook/reference/sect-scala-script-inline.html):

import scala.collection.jcl.Conversions._
class embeddedScript_1(project:org.scala_tools.maven.model.MavenProjectAdapter,log:org
.apache.maven.plugin.logging.Log) {
  import java.io.{File,  PrintWriter, FileWriter};
          import scalax.io.FileExtras;
          import scala.collection.mutable.HashSet;
  
          val outputDir = project.getBuild().getOutputDirectory();
          val depsFile = new FileExtras( new File( outputDir, "deps.txt" ) )
          val pw = depsFile.printWriter
        val depSet = new HashSet[String]
          for( d <- project.getDependencies() ) {
            depSet += d.getGroupId + ":" + d.getArtifactId + ":" + d.getVersion
          }
          pw.writeLines( depSet.toSeq )
}

Running maven with -X option returned classpath as follows:

[C:\Users\Administrator\.m2\repository\org\codehaus\plexus\plexus-i18n\1.0-beta-6\plexus-i18n-1.0-beta-6.jar
 C:\Users\Administrator\.m2\repository\velocity\velocity-dep\1.4\velocity-dep-1.4.jar
 C:\Users\Administrator\.m2\repository\com\jcraft\jsch\0.1.23\jsch-0.1.23.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\shared\maven-dependency-tree\1.2\maven-dependency-tree-1.2.jar
 C:\Users\Administrator\.m2\repository\org\codehaus\plexus\plexus-interactivity-api\1.0-alpha-4\plexus-interactivity-api-1.0-alpha-4.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-model\2.0.9\maven-model-2.0.9.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-artifact\2.0\maven-artifact-2.0.jar
 C:\Users\Administrator\.m2\repository\junit\junit\3.8.1\junit-3.8.1.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-artifact\2.0.9\maven-artifact-2.0.9.jar
 C:\Users\Administrator\.m2\repository\org\codehaus\plexus\plexus-container-default\1.0-alpha-9-stable-1\plexus-container-default-1.0-alpha-9-stable-1.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\doxia\doxia-site-renderer\1.0-alpha-7\doxia-site-renderer-1.0-alpha-7.jar
 C:\Users\Administrator\.m2\repository\commons-beanutils\commons-beanutils\1.6\commons-beanutils-1.6.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-model\2.0\maven-model-2.0.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\wagon\wagon-provider-api\1.0-beta-2\wagon-provider-api-1.0-beta-2.jar
 C:\Users\Administrator\.m2\repository\org\scalaforge\scalax\0.1\scalax-0.1.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-project\2.0.5\maven-project-2.0.5.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-profile\2.0\maven-profile-2.0.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-artifact-manager\2.0\maven-artifact-manager-2.0.jar
 C:\Users\Administrator\.m2\repository\commons-validator\commons-validator\1.2.0\commons-validator-1.2.0.jar
 C:\Users\Administrator\.m2\repository\org\codehaus\plexus\plexus-utils\1.5.1\plexus-utils-1.5.1.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\wagon\wagon-http-lightweight\1.0-alpha-5\wagon-http-lightweight-1.0-alpha-5.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-plugin-parameter-documenter\2.0\maven-plugin-parameter-documenter-2.0.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\wagon\wagon-provider-api\1.0-alpha-5\wagon-provider-api-1.0-alpha-5.jar
 C:\Users\Administrator\.m2\repository\commons-cli\commons-cli\1.0\commons-cli-1.0.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-settings\2.0\maven-settings-2.0.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-error-diagnostics\2.0\maven-error-diagnostics-2.0.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\doxia\doxia-core\1.0-alpha-8\doxia-core-1.0-alpha-8.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-model\2.0.5\maven-model-2.0.5.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\shared\maven-dependency-analyzer\1.1\maven-dependency-analyzer-1.1.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\doxia\doxia-sink-api\1.0-alpha-7\doxia-sink-api-1.0-alpha-7.jar
 C:\Users\Administrator\.m2\repository\org\codehaus\plexus\plexus-velocity\1.1.3\plexus-velocity-1.1.3.jar
 C:\Users\Administrator\.m2\repository\org\scala-lang\scala-compiler\2.7.3\scala-compiler-2.7.3.jar
 C:\Users\Administrator\.m2\repository\org\codehaus\plexus\plexus-utils\1.5.15\plexus-utils-1.5.15.jar
 C:\Users\Administrator\.m2\repository\commons-beanutils\commons-beanutils\1.7.0\commons-beanutils-1.7.0.jar
 C:\Users\Administrator\.m2\repository\org\scala-tools\maven-scala-plugin\2.10.1\maven-scala-plugin-2.10.1.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-repository-metadata\2.0.9\maven-repository-metadata-2.0.9.jar
 C:\Users\Administrator\.m2\repository\commons-lang\commons-lang\1.0\commons-lang-1.0.jar
 C:\Users\Administrator\.m2\repository\org\codehaus\plexus\plexus-utils\1.4.2\plexus-utils-1.4.2.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-project\2.0.4\maven-project-2.0.4.jar
 C:\Users\Administrator\.m2\repository\org\codehaus\plexus\plexus-container-default\1.0-alpha-9\plexus-container-default-1.0-alpha-9.jar
 C:\Users\Administrator\.m2\repository\jline\jline\0.9.93\jline-0.9.93.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\reporting\maven-reporting-impl\2.0.4\maven-reporting-impl-2.0.4.jar
 C:\Users\Administrator\.m2\repository\commons-collections\commons-collections\2.1\commons-collections-2.1.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\doxia\doxia-decoration-model\1.0-alpha-8\doxia-decoration-model-1.0-alpha-8.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\wagon\wagon-ssh\1.0-alpha-5\wagon-ssh-1.0-alpha-5.jar
 C:\Users\Administrator\.m2\repository\xml-apis\xml-apis\2.0.2\xml-apis-2.0.2.jar
 C:\Users\Administrator\.m2\repository\oro\oro\2.0.8\oro-2.0.8.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-plugin-registry\2.0\maven-plugin-registry-2.0.jar
 C:\Users\Administrator\.m2\repository\org\codehaus\plexus\plexus-utils\1.2\plexus-utils-1.2.jar
 C:\Users\Administrator\.m2\repository\org\codehaus\plexus\plexus-container-default\1.0-alpha-8\plexus-container-default-1.0-alpha-8.jar
 C:\Users\Administrator\.m2\repository\asm\asm\3.0\asm-3.0.jar
 C:\Users\Administrator\.m2\repository\org\slf4j\slf4j-api\1.5.0\slf4j-api-1.5.0.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\wagon\wagon-file\1.0-alpha-5\wagon-file-1.0-alpha-5.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-plugin-registry\2.0.9\maven-plugin-registry-2.0.9.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-plugin-api\2.0.9\maven-plugin-api-2.0.9.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-project\2.0\maven-project-2.0.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\shared\maven-common-artifact-filters\1.0\maven-common-artifact-filters-1.0.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-plugin-descriptor\2.0\maven-plugin-descriptor-2.0.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-artifact\2.0.8\maven-artifact-2.0.8.jar
 C:\Users\Administrator\.m2\repository\commons-collections\commons-collections\2.0\commons-collections-2.0.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\reporting\maven-reporting-api\2.0\maven-reporting-api-2.0.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-plugin-api\2.0\maven-plugin-api-2.0.jar
 C:\Users\Administrator\.m2\repository\commons-logging\commons-logging\1.0.3\commons-logging-1.0.3.jar
 C:\Users\Administrator\.m2\repository\org\codehaus\plexus\plexus-archiver\1.0-alpha-7\plexus-archiver-1.0-alpha-7.jar
 C:\Users\Administrator\.m2\repository\org\scala-lang\scala-library\2.7.3\scala-library-2.7.3.jar
 C:\Develop\TEST\scala-test\target\classes/
 C:\Users\Administrator\.m2\repository\org\apache\maven\doxia\doxia-core\1.0-alpha-7\doxia-core-1.0-alpha-7.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-repository-metadata\2.0\maven-repository-metadata-2.0.jar
 C:\Users\Administrator\.m2\repository\oro\oro\2.0.7\oro-2.0.7.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-settings\2.0.9\maven-settings-2.0.9.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-profile\2.0.9\maven-profile-2.0.9.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-plugin-api\2.0.4\maven-plugin-api-2.0.4.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-model\2.2.0\maven-model-2.2.0.jar
 C:\Users\Administrator\.m2\repository\velocity\velocity\1.4\velocity-1.4.jar
 C:\Users\Administrator\.m2\repository\classworlds\classworlds\1.1-alpha-2\classworlds-1.1-alpha-2.jar
 C:\Users\Administrator\.m2\repository\commons-logging\commons-logging\1.0.4\commons-logging-1.0.4.jar
 C:\Users\Administrator\.m2\repository\org\codehaus\plexus\plexus-container-default\1.0-alpha-7\plexus-container-default-1.0-alpha-7.jar
 C:\Users\Administrator\.m2\repository\xml-apis\xml-apis\1.0.b2\xml-apis-1.0.b2.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-monitor\2.0\maven-monitor-2.0.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-project\2.0.8\maven-project-2.0.8.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\doxia\doxia-site-renderer\1.0-alpha-8\doxia-site-renderer-1.0-alpha-8.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-core\2.0\maven-core-2.0.jar
 C:\Users\Administrator\.m2\repository\org\codehaus\plexus\plexus-utils\1.0.4\plexus-utils-1.0.4.jar
 C:\Users\Administrator\.m2\repository\commons-logging\commons-logging\1.0\commons-logging-1.0.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\shared\maven-plugin-testing-harness\1.1\maven-plugin-testing-harness-1.1.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-artifact-manager\2.0.9\maven-artifact-manager-2.0.9.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-project\2.0.9\maven-project-2.0.9.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\maven-artifact\2.0.5\maven-artifact-2.0.5.jar
 C:\Users\Administrator\.m2\repository\org\apache\maven\reporting\maven-reporting-api\2.0.4\maven-reporting-api-2.0.4.jar
 C:\Users\Administrator\.m2\repository\plexus\plexus-utils\1.0.2\plexus-utils-1.0.2.jar
 C:\Users\Administrator\.m2\repository\commons-digester\commons-digester\1.6\commons-digester-1.6.jar]
 

Scalax Library and other ones are listed so I don't understand this issue.

Can anybody help me?
thx in advance
golbie

classes.timestamp not cleaned when specifying outputDirectory outside Maven's target directory

I need my compiled classes to be located outside Maven's target directory. This can be accomplished by specifying the outputDirectory element within the build section.

During the clean phase this directory is properly cleaned. The classes.timestamp file however ,that resides in the parent of the configured outputDirectory, is left as is. The result is that the plugin assumes there is nothing to compile.

I currently work around this issue by removing this file with the maven-antrun-plugin but hope to see this fixed in a future release

... src/main/webapp/WEB-INF/classes maven-compiler-plugin 2.0.2 1.6 1.6 org.scala-tools maven-scala-plugin scala-compile-first process-resources add-source compile scala-test-compile process-test-resources testCompile maven-antrun-plugin 1.6 clean Cleaning up maven scala plugin timestamp file run ... ...

maven-cli-plugin conflicts with maven-scala-plugin command line

I found maven-cli-plugin at http://wiki.github.com/mrdon/maven-cli-plugin
and started using it. It had problems with Maven 2.1.0, but works OK
with Maven 2.0.10 and the new 2.2.0. In order to do Scala, have to
use

mvn cli:execute-phase

However, often, I hit Enter or Arrow-up key, and the shell quits with:

maven2> !!!! exc !!!java.io.IOException: Broken pipe
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:260)
at java.io.BufferedOutputStream.flushBuffer
(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush
(BufferedOutputStream.java:123)
at org.scala_tools.maven.StreamPiper.run(StreamPiper.java:42)
Exception in thread "Thread-2" java.lang.RuntimeException: wrap:
Broken pipe
at org.scala_tools.maven.StreamPiper.run(StreamPiper.java:56)
Caused by: java.io.IOException: Broken pipe
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:260)
at java.io.BufferedOutputStream.flushBuffer
(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush
(BufferedOutputStream.java:123)
at org.scala_tools.maven.StreamPiper.run(StreamPiper.java:42)

-- notice scala_tools getting in on the action somehow, why?!

scala:cc broken on scala 2.8.0?

on a project using Scala 2.8.0 I tried running "mvn scala:cc" and got the following stack trace. I tried 2.14 and 2.14.1 of the plugin...

[INFO] java.io.FileNotFoundException: source file 'verbose' could not be found
[INFO] at scala.tools.nsc.Global.getSourceFile(Global.scala:232)
[INFO] at scala.tools.nsc.Global$Run$$anonfun$6.apply(Global.scala:811)
[INFO] at scala.tools.nsc.Global$Run$$anonfun$6.apply(Global.scala:811)
[INFO] at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
[INFO] at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
[INFO] at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
[INFO] at scala.collection.immutable.List.foreach(List.scala:45)
[INFO] at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
[INFO] at scala.collection.immutable.List.map(List.scala:45)
[INFO] at scala.tools.nsc.Global$Run.compile(Global.scala:811)
[INFO] at scala.tools.nsc.StandardCompileServer.session(CompileServer.scala:126)
[INFO] at scala.tools.util.SocketServer$$anonfun$doSession$1.apply(SocketServer.scala:69)
[INFO] at scala.tools.util.SocketServer$$anonfun$doSession$1.apply(SocketServer.scala:69)
[INFO] at scala.util.DynamicVariable.withValue(DynamicVariable.scala:71)
[INFO] at scala.Console$.withOut(Console.scala:99)
[INFO] at scala.tools.util.SocketServer.doSession(SocketServer.scala:69)
[INFO] at scala.tools.util.SocketServer.run(SocketServer.scala:88)
[INFO] at scala.tools.nsc.StandardCompileServer.main(CompileServer.scala:158)
[INFO] at scala.tools.nsc.CompileServer.main(CompileServer.scala)
[INFO] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[INFO] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[INFO] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[INFO] at java.lang.reflect.Method.invoke(Method.java:597)
[INFO] at scala.tools.nsc.util.ScalaClassLoader$$anonfun$run$1.apply(ScalaClassLoader.scala:81)
[INFO] at scala.tools.nsc.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:24)
[INFO] at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.asContext(ScalaClassLoader.scala:86)
[INFO] at scala.tools.nsc.util.ScalaClassLoader$class.run(ScalaClassLoader.scala:81)
[INFO] at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:86)
[INFO] at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:83)
[INFO] at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)

mvn scala:doc throws OutOfMemoryError

I'm trying to build scaladocs in Maven using mvn scala:doc. The problem is that I keep getting an OutOfMemoryError; which shouldn't be happening unless the maven-scala-plugin isn't picking up my memory settings. Here's more details:

  1. I have MAVEN_OPTS set to -Xmx4096m -XX:MaxPermSize=128m -XX:PermSize=128m
  2. When I compile, using 'mvn clean install', the Max Heap is getting set correctly to 4,294,967,296 B. So maven is seeing the -Xmx4096m flag. (I checked it using VisualVM)
  3. When I run mvn scala:doc, the Max Heap is only getting set to 132,120,576 B so it is NOT seeing the -Xmx4096m flag.
  4. I get the same result using Maven 2.2.1 and 3.0 and maven-scala-plugin 2.14.2, 2.14.3 and 2.15.0.

[Documentation] Add example of using Scala compiler <args>, e.g. deprecation

On seeing warnings like:

 warning: there were deprecation warnings; re-run with -deprecation for details

I couldn't figure out what to do -- it took this thread on the Lift list to straighten me out: http://groups.google.com/group/liftweb/browse_thread/thread/1a2a07e0b70a76af

Anyway, I think it warrants an example in the plugin docs which includes something like the following (maybe sans the <useFsc> and <scalaVersion> elements if you feel they distract from the point (<args> usage)):

    <configuration>
      <useFsc>true</useFsc>
      <scalaVersion>${scala.version}</scalaVersion>
      <args>
        <arg>-unchecked</arg>
        <arg>-deprecation</arg>
        <arg>-explaintypes</arg>
      </args>
    </configuration>

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.