Full name:
com.carrotgarden.maven:scalor-maven-plugin_2.12:1.5.0.20190502181145:scala-js-link
Description:
Attributes:
| Name | Type | Since | Description |
|---|---|---|---|
| <commonMappingPattern> | String | - | Regular expression for plugin configuration map values provided in
pom.xml. Extractor for pattern:
key=value. Must define exactly two regex capture
groups. Mapping regular expression is used as follows:
case commonMappingPattern.r( key, value ) => ( key, value ) Default value is: \s*([^=\s]+)\s*=\s*([^\s]+)\s*. User property is: scalor.commonMappingPattern. |
| <commonSequenceSeparator> | String | - | Separator for plugin configuration list values provided in
pom.xml. Separator regular expression is used as
follows:
string.split( commonSequenceSeparator ).map( _.trim ).filterNot( _.isEmpty ) Default value is: [★\n]+. User property is: scalor.commonSequenceSeparator. |
| <linkerClassRegex> | String | - | Regular expression used to discover Scala.js IR classes from class
path. Default value is: .+[.]sjsir. User property is: scalor.linkerClassRegex. |
| <linkerInitializerRegex> | String | - | Regular expression used to extract Scala.js module initializer
configuration. Must provide extractor for pattern:
packageName.ClassName.methodName(arg0,arg1,...). Must
provide exactly 3 capture groups: class, method, arguments.
Arguments separator is hard-coded comma , not part of
this regex. Default value is: ([a-zA-Z_.0-9]+)[.]([a-zA-Z_0-9]+)[(]([^()]*)[)]. User property is: scalor.linkerInitializerRegex. |
| <linkerLibraryDetect> | boolean | - | Invoke Scala.js linker only when Scala.js library is detected in
project dependencies with given scope. Detection parameter: linkerLibraryRegex. Default value is: true. User property is: scalor.linkerLibraryDetect. |
| <linkerLibraryRegex> | String | - | Regular expression used to discover Scala.js core
sjsir library from class path. This regular expression
is matched against resolved project depenencies in given scope.
Regular expression in the form:
${groupId}:${artifactId}. Enablement parameter: linkerLibraryDetect. Default value is: org.scala-js:scalajs-library_.+. User property is: scalor.linkerLibraryRegex. |
| <linkerLogBuildStats> | boolean | - | Enable logging of Scala.js linker build phase statistics, including
phase durations. Use to review linker performance profile. Default value is: false. User property is: scalor.linkerLogBuildStats. |
| <linkerLogClassPath> | boolean | - | Enable logging of Scala.js linker class path. Use to review actual
resources used for *.sjsir class discovery. Default value is: false. User property is: scalor.linkerLogClassPath. |
| <linkerLogOptions> | boolean | - | Enable logging of linker options. Use to review actual Scala.js
linker invocation configuration. Default value is: false. User property is: scalor.linkerLogOptions. |
| <linkerLogRuntime> | boolean | - | Enable logging of Scala.js linker runtime.js. Use to review actual
generated output runtime.js location. Default value is: true. User property is: scalor.linkerLogRuntime. |
| <linkerLogUpdateResult> | boolean | - | Enable logging of Scala.js linker update result of M2E incremental
change detection. Use to review actual *.sjsir classes
which triggered Eclipse linker build. Default value is: false. User property is: scalor.linkerLogUpdateResult. |
| <linkerMainBuildMode> | String | - | Build mode for non-optimized linkerMainRuntimeJs.
Normally uses always, to link during both Maven full
build and Eclipse incremental build. Available build modes:
always - link during both full and incremental build never - do not produce runtime at all full - link only during full build incr - link only during incremental build Default value is: always. User property is: scalor.linkerMainBuildMode. |
| <linkerMainBuildModeMin> | String | - | Build mode for optimized/minified linkerMainRuntimeMinJs.
Normally uses full, to link only during Maven full
build and skip Eclipse incremental build. Available build modes:
always - link during both full and incremental build never - do not produce runtime at all full - link only during full build incr - link only during incremental build Default value is: full. User property is: scalor.linkerMainBuildModeMin. |
| <linkerMainBuildOptions> | String | - | Build options for non-optimized linkerMainRuntimeJs.
Scala.js linker options for scope=main, mode=development. Scala.js
linker options reference: StandardLinker.scala
Uses simple json format. Default value is: { "checkIR":false, "parallel":true, "batchMode":false, "sourceMap":true, "optimizer":false, "prettyPrint":true, "closureCompiler":false } . User property is: scalor.linkerMainBuildOptions. |
| <linkerMainBuildOptionsMin> | String | - | Build options for optimized/minified linkerMainRuntimeMinJs.
Scala.js linker options for scope=main, mode=production. Scala.js
linker options reference: StandardLinker.scala
Uses simple json format. Default value is: { "checkIR":false, "parallel":true, "batchMode":true, "sourceMap":true, "optimizer":true, "prettyPrint":false, "closureCompiler":true } . User property is: scalor.linkerMainBuildOptionsMin. |
| <linkerMainDependencyFolders> | File[] | - | Folders with classes generated by current project and included in
linker class path. Normally includes build output from
scope=[macro,main] (target/classes). Default value is: ${project.build.outputDirectory}. User property is: scalor.linkerMainDependencyFolders. |
| <linkerMainDependencyScopes> | String[] | - | Provide linker class path from project dependency artifacts based
on these scopes. Scopes reference. Default value is: provided. User property is: scalor.linkerMainDependencyScopes. |
| <linkerMainInitializerList> | String[] | - | List of Scala.js module initializer declarations. Module
initializers are JavaScript equivalent to Java main
method convention. They are invoked when linker-generated
runtime.js script is loaded in Node.js or Browser
JS-VM. Each list entry must be a fully qualified class name of
Scala object, with method name, with argument list, which follows
Java main contract, and is annotated with
@JSExportTopLevel, @JSExport. For
example, the following pom.xml plugin configuration
entry:
<linkerTestInitializerList>
<initializer>test.Init.main(build=${project.artifactId},stamp=${maven.build.timestamp})</initializer>
</linkerTestInitializerList>
package test
import scala.scalajs.js.annotation._
@JSExportTopLevel( "test.Init" )
object Init {
@JSExport
// Arguments contain "build" and "stamp" entries from pom.xml.
def main( args : Array[ String ] ) : Unit = {
// This module output is printed on JS-VM console (Node.js or Browser).
println( s"init-main: ${args(0)} ${args(1)}" )
}
}
User property is: scalor.linkerMainInitializerList. |
| <linkerMainRuntimeJs> | String | - | Non-optimized runtime script. Relative path of the generated
runtime JavaScript file for scope=main, mode=development. File is
packaged inside linkerMainTargetFolder
Normally follows webjars convention. Default value is: ${project.artifactId}/${project.version}/runtime.js. User property is: scalor.linkerMainRuntimeJs. |
| <linkerMainRuntimeMinJs> | String | - | Linker optimized/minified runtime script. Relative path of the
generated runtime JavaScript file for scope=main, mode=production.
File is packaged inside linkerMainTargetFolder
Normally follows webjars convention. Default value is: ${project.artifactId}/${project.version}/runtime.min.js. User property is: scalor.linkerMainRuntimeMinJs. |
| <linkerMainTargetFolder> | File | - | Build target directory for the generated runtime JavaScript file
with scope=main. Normally packaged inside
target/classes. Normally follows webjars convention. Default value is: ${project.build.outputDirectory}/META-INF/resources/webjars. User property is: scalor.linkerMainTargetFolder. |
| <linkerTestBuildMode> | String | - | Build mode for non-optimized linkerTestRuntimeJs.
Normally uses always, to link during both Maven full
build and Eclipse incremental build. Available build modes:
always - link during both full and incremental build never - do not produce runtime at all full - link only during full build incr - link only during incremental build Default value is: always. User property is: scalor.linkerTestBuildMode. |
| <linkerTestBuildModeMin> | String | - | Build mode for optimized/minified linkerTestRuntimeMinJs.
Normally uses never, since test runtime is not
intended as deployment artifact. Available build modes:
always - link during both full and incremental build never - do not produce runtime at all full - link only during full build incr - link only during incremental build Default value is: never. User property is: scalor.linkerTestBuildModeMin. |
| <linkerTestBuildOptions> | String | - | Build options for non-optimized linkerTestRuntimeJs.
Scala.js linker options for scope=test, mode=development. Scala.js
linker options reference: StandardLinker.scala
Uses simple json format. Default value is: { "checkIR":false, "parallel":true, "batchMode":false, "sourceMap":true, "optimizer":false, "prettyPrint":true, "closureCompiler":false } . User property is: scalor.linkerTestBuildOptions. |
| <linkerTestBuildOptionsMin> | String | - | Build options for optimized/minified linkerTestRuntimeMinJs.
Scala.js linker options for scope=test, mode=production. Scala.js
linker options reference: StandardLinker.scala
Uses simple json format. Default value is: { "checkIR":false, "parallel":true, "batchMode":true, "sourceMap":true, "optimizer":true, "prettyPrint":false, "closureCompiler":true } . User property is: scalor.linkerTestBuildOptionsMin. |
| <linkerTestDependencyFolders> | File[] | - | Folders with classes generated by current project and included in
linker class path. Normally includes build output from
scope=[macro,main,test] (target/test-classes,
target/classes). Default value is: ${project.build.testOutputDirectory},${project.build.outputDirectory}. User property is: scalor.linkerTestDependencyFolders. |
| <linkerTestDependencyScopes> | String[] | - | Provide linker class path from project dependencies selected by
these scopes. Scopes reference. Default value is: provided,test. User property is: scalor.linkerTestDependencyScopes. |
| <linkerTestInitializerList> | String[] | - | List of Scala.js module initializer declarations. Module
initializers are JavaScript equivalent to Java main
method convention. They are invoked when linker-generated
runtime.js script is loaded in Node.js or Browser
JS-VM. Each list entry must be a fully qualified class name of
Scala object, with method name, with argument list, which follows
Java main contract, and is annotated with
@JSExportTopLevel, @JSExport. For
example, the following pom.xml plugin configuration
entry:
<linkerTestInitializerList>
<initializer>test.Init.main(build=${project.artifactId},stamp=${maven.build.timestamp})</initializer>
</linkerTestInitializerList>
package test
import scala.scalajs.js.annotation._
@JSExportTopLevel( "test.Init" )
object Init {
@JSExport
// Arguments contain "build" and "stamp" entries from pom.xml.
def main( args : Array[ String ] ) : Unit = {
// This module output is printed on JS-VM console (Node.js or Browser).
println( s"init-main: ${args(0)} ${args(1)}" )
}
}
User property is: scalor.linkerTestInitializerList. |
| <linkerTestRuntimeJs> | String | - | Non-optimized runtime script. Relative path of the generated
runtime JavaScript file for scope=test, mode=development. File is
packaged inside linkerTestTargetFolder
Normally follows webjars convention. Default value is: ${project.artifactId}/${project.version}/runtime-test.js. User property is: scalor.linkerTestRuntimeJs. |
| <linkerTestRuntimeMinJs> | String | - | Linker optimized/minified runtime script. Relative path of the
generated runtime JavaScript file for scope=test, mode=production.
File is packaged inside linkerTestTargetFolder
Normally follows webjars convention. Default value is: ${project.artifactId}/${project.version}/runtime-test.min.js. User property is: scalor.linkerTestRuntimeMinJs. |
| <linkerTestTargetFolder> | File | - | Build target directory for the generated runtime JavaScript file
with scope=test. Normally packaged inside
target/test-classes. Normally follows webjars
convention. Default value is: ${project.build.testOutputDirectory}/META-INF/resources/webjars. User property is: scalor.linkerTestTargetFolder. |
| <skip> | boolean | - | Force to skip all executions of this plugin. Default value is: false. User property is: scalor.skip. |
| <skipLinker> | boolean | - | Flag to skip this execution: scala-js-link-*. Default value is: false. User property is: scalor.skipLinker. |
| <skipLogReason> | boolean | - | Enable logging of reason for skipping an execution. Default value is: true. User property is: scalor.skipLogReason. |
| <skipPackagingList> | String[] | - | List of packaging types, which are skipped by this plugin. Default value is: pom. User property is: scalor.skipPackagingList. |
case commonMappingPattern.r( key, value ) => ( key, value )
string.split( commonSequenceSeparator ).map( _.trim ).filterNot( _.isEmpty )
always - link during both full and incremental build never - do not produce runtime at all full - link only during full build incr - link only during incremental build
always - link during both full and incremental build never - do not produce runtime at all full - link only during full build incr - link only during incremental build
<linkerTestInitializerList>
<initializer>test.Init.main(build=${project.artifactId},stamp=${maven.build.timestamp})</initializer>
</linkerTestInitializerList>
package test
import scala.scalajs.js.annotation._
@JSExportTopLevel( "test.Init" )
object Init {
@JSExport
// Arguments contain "build" and "stamp" entries from pom.xml.
def main( args : Array[ String ] ) : Unit = {
// This module output is printed on JS-VM console (Node.js or Browser).
println( s"init-main: ${args(0)} ${args(1)}" )
}
}
always - link during both full and incremental build never - do not produce runtime at all full - link only during full build incr - link only during incremental build
always - link during both full and incremental build never - do not produce runtime at all full - link only during full build incr - link only during incremental build
<linkerTestInitializerList>
<initializer>test.Init.main(build=${project.artifactId},stamp=${maven.build.timestamp})</initializer>
</linkerTestInitializerList>
package test
import scala.scalajs.js.annotation._
@JSExportTopLevel( "test.Init" )
object Init {
@JSExport
// Arguments contain "build" and "stamp" entries from pom.xml.
def main( args : Array[ String ] ) : Unit = {
// This module output is printed on JS-VM console (Node.js or Browser).
println( s"init-main: ${args(0)} ${args(1)}" )
}
}