Scalor Maven Plugin

Build integrator for Java, Scala, Scala.macro, Scala.js, Scala.native, Eclipse and Maven.
Alternatives To Scalor Maven Plugin
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Groovy Eclipse6412474 days ago17March 13, 202165Java
Eclipse Groovy Development Tools
Bnd4852704363 days ago25June 07, 20227otherJava
Bnd/Bndtools. Tooling to build OSGi bundles including Eclipse, Maven, and Gradle plugins.
Jkube48343 days ago22September 14, 2022199epl-2.0Java
Build and Deploy java applications on Kubernetes
Sculptor258314 months ago8April 05, 201522apache-2.0Java
Sculptor is a code generator that applies the concepts from Domain-Driven Design and Domain Specific Languages.
Formatter Maven Plugin241311 days ago29November 04, 202223apache-2.0Java
Formatter Maven Plugin
P2 Maven Plugin222
1a month ago10November 17, 202273Java
Maven3 plugin that automates the third-party dependency management for Eclipse RCP
Scalor Maven Plugin41
4 years ago19May 02, 20197apache-2.0Scala
Build integrator for Java, Scala, Scala.macro, Scala.js, Scala.native, Eclipse and Maven.
Bus Reservation System26
2 months ago1HTML
Bus Reservation System
M2eclipse Book17
8 years agoepl-1.0CSS
This is a book about m2eclipse: The maven plugin for Eclipse
Nativedependencies Maven11
2 years ago6February 08, 201815Java
nativedependencies-maven-plugin is a Maven plugin helping you deal with native dependencies (be it .so, .dll...)
Alternatives To Scalor Maven Plugin
Select To Compare


Alternative Project Comparisons
Readme

Scalor Maven Plugin

Build integrator for Java, Scala, Scala.macro, Scala.js, Scala.native, Eclipse and Maven.

Project License Travis Status Appvey Status Lines of Code

Install Production Release Development Release
Scalor Plugin 1.X for Scala IDE 4.7
Central Bintray

Similar plugins

Getting started

Plugin features

Scala

Scala.macro

Scala.js

Scala.native

Eclipse and Maven

Primary Maven goals

Complete goals reference

Eclipse setup

Prerequisites:

Involves two steps:

  1. declare scalor-maven-plugin in pom.xml editor
    this makes plugin available for Maven and Eclipse M2E
    make sure to provide Maven plugin goal eclipse-config

  2. invoke from menu Eclipse -> Project -> { Auto, Clean, Build }
    this allows Maven plugin to install own Eclipse companion plugin
    which in turn invokes M2E project configurator for Scala projects

Project update tips:

Version mapping

Normally, Scala IDE itself runs on the latest stable Scala Library at the time frame.

For example:

  • Scala IDE 4.7.0 -> Scala Library 2.12.3

Eclipse companion plugin provided by this Maven plugin needs to interact with Scala IDE and hence must run on the Scala Library from the same epoch:

  • Scala IDE 4.7.0 -> scalor-maven-plugin_2.12

However, compiler-bridge module provides an isolation gateway which allows scalor-maven-plugin_2.12 to build projects with different Scala epoch, such as 2.11, 2.12, 2.13

Required version mapping is provided via scalor-maven-plugin configuration entries:

<defineAuto>
<defineBridge>
<defineCompiler>
<definePluginList>

Usage example

Project Examples:

Command line invocation:

mvn clean install -P scalor
        <profile>
            <id>scalor</id>
            <build>
                <plugins>

                   <!-- Disable default compiler. -->
                   <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <configuration>
                            <skip>true</skip>
                            <skipMain>true</skipMain>
                        </configuration>
                    </plugin>

                   <!-- Enable alternative compiler. -->
                    <plugin>
                        <groupId>com.carrotgarden.maven</groupId>
                        <artifactId>scalor-maven-plugin_2.12</artifactId>
                        <configuration>

                           <!-- Compiler bridge. -->
                            <defineBridge>
                                <dependency>
                                    <groupId>org.scala-sbt</groupId>
                                    <artifactId>compiler-bridge_${version.scala.epoch}</artifactId>
                                    <version>${version.scala.zinc}</version>
                                </dependency>
                            </defineBridge>

                           <!-- Scala compiler. -->
                            <defineCompiler>
                                <dependency>
                                    <groupId>org.scala-lang</groupId>
                                    <artifactId>scala-compiler</artifactId>
                                    <version>${version.scala.release}</version>
                                </dependency>
                            </defineCompiler>

                           <!-- Compiler plugins. -->
                            <definePluginList>
                                <dependency>
                                    <groupId>org.scalamacros</groupId>
                                    <artifactId>paradise_${version.scala.release}</artifactId>
                                    <version>${version.scala.plugin.macro}</version>
                                </dependency>
                                <dependency>
                                    <groupId>org.scala-js</groupId>
                                    <artifactId>scalajs-compiler_${version.scala.release}</artifactId>
                                    <version>${version.scalajs.release}</version>
                                </dependency>
                            </definePluginList>

                        </configuration>
                        <executions>
                            <execution>

                                <!-- Subset of available. -->
                                <goals>

                                    <!-- Setup Eclipse plugin. -->
                                    <goal>eclipse-config</goal>

                                    <!-- Transfer format settings. -->
                                    <goal>eclipse-format</goal>

                                    <!-- Manage test application. -->
                                    <goal>eclipse-restart</goal>

                                    <!-- Manage presentation compiler. -->
                                    <goal>eclipse-prescomp</goal>

                                    <!-- Add compilation sources. -->
                                    <goal>register-macro</goal>
                                    <goal>register-main</goal>
                                    <goal>register-test</goal>

                                    <!-- Compile sources. -->
                                    <goal>compile-macro</goal>
                                    <goal>compile-main</goal>
                                    <goal>compile-test</goal>

                                    <!-- Link runtime JS script. -->
                                    <goal>scala-js-link-main</goal>
                                    <goal>scala-js-link-test</goal>

                                    <!-- Provide JS-VM environment for testing. -->
                                    <goal>scala-js-env-prov-webjars</goal>
                                    <goal>scala-js-env-prov-nodejs</goal>
                                    <goal>scala-js-env-conf-nodejs</goal>

                                </goals>

                            </execution>
                        </executions>
                    </plugin>

                </plugins>
            </build>
        </profile>

Build yourself

Linux

cd /tmp
git clone [email protected]:random-maven/scalor-maven-plugin.git
cd scalor-maven-plugin
./mvnw.sh clean install -B -P skip-test

Windows

Popular Eclipse Projects
Popular Maven Plugin Projects
Popular Integrated Development Environments Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Java
Plugin
Scala
Eclipse
Ide
Macros
Scalajs
Maven Plugin
Eclipse Plugin
Scala Native