All Projects → random-maven → scalor-maven-plugin

random-maven / scalor-maven-plugin

Licence: Apache-2.0 License
Build integrator for Java, Scala, Scala.macro, Scala.js, Scala.native, Eclipse and Maven.

Programming Languages

scala
5932 projects
shell
77523 projects
java
68154 projects - #9 most used programming language
groovy
2714 projects
Batchfile
5799 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to scalor-maven-plugin

Bnd
Bnd/Bndtools. Tooling to build OSGi bundles including Eclipse, Maven, and Gradle plugins.
Stars: ✭ 446 (+848.94%)
Mutual labels:  eclipse, maven-plugin, eclipse-plugin
Groovy Eclipse
Eclipse Groovy Development Tools
Stars: ✭ 567 (+1106.38%)
Mutual labels:  eclipse, maven-plugin, eclipse-plugin
Formatter Maven Plugin
Formatter Maven Plugin
Stars: ✭ 187 (+297.87%)
Mutual labels:  maven, eclipse, maven-plugin
gradle-git-versioning-plugin
This extension will set project version, based on current Git branch or tag.
Stars: ✭ 44 (-6.38%)
Mutual labels:  maven, maven-plugin
eclipse-null-eea-augments
Eclipse External null Annotations (EEA) repository
Stars: ✭ 34 (-27.66%)
Mutual labels:  maven, eclipse
lxtk
Language Client/Server Toolkit
Stars: ✭ 22 (-53.19%)
Mutual labels:  eclipse, eclipse-plugin
eclox
Eclox is a simple doxygen frontend plug-in for eclipse. It aims to provide a slim and sleek integration of the code documentation process into Eclipse.
Stars: ✭ 32 (-31.91%)
Mutual labels:  eclipse, eclipse-plugin
xml-maven-plugin
XML Maven Plugin
Stars: ✭ 18 (-61.7%)
Mutual labels:  maven, maven-plugin
wagon-maven-plugin
www.mojohaus.org/wagon-maven-plugin/
Stars: ✭ 23 (-51.06%)
Mutual labels:  maven, maven-plugin
scalafix-maven-plugin
Enables automatic refactoring and linting of Maven projects written in Scala using Scalafix.
Stars: ✭ 15 (-68.09%)
Mutual labels:  maven, maven-plugin
aspectj-maven-plugin
www.mojohaus.org/aspectj-maven-plugin/
Stars: ✭ 77 (+63.83%)
Mutual labels:  maven, maven-plugin
keep-changelog-maven-plugin
Maven plugin to help creating CHANGELOG by keeping one format and solving merge request conflicts problem by extraction of new CHANGELOG entries to seperate files.
Stars: ✭ 22 (-53.19%)
Mutual labels:  maven, maven-plugin
build-helper-maven-plugin
Build Helper Maven Plugin
Stars: ✭ 77 (+63.83%)
Mutual labels:  maven, maven-plugin
ContextQuickie
An eclipse add-on which extens the context menu for accessing various tools.
Stars: ✭ 17 (-63.83%)
Mutual labels:  eclipse, eclipse-plugin
kobby
Kobby is a codegen plugin of Kotlin DSL Client by GraphQL schema. The generated DSL supports execution of complex GraphQL queries, mutation and subscriptions in Kotlin with syntax similar to native GraphQL syntax.
Stars: ✭ 52 (+10.64%)
Mutual labels:  maven, maven-plugin
native-build-tools
Native-image plugins for various build tools
Stars: ✭ 168 (+257.45%)
Mutual labels:  maven, maven-plugin
gonsole
Gonsole - Git Console for the Eclipse IDE
Stars: ✭ 35 (-25.53%)
Mutual labels:  eclipse, eclipse-plugin
ABAPFavorites
ABAP Favorites Eclipse Plugin
Stars: ✭ 23 (-51.06%)
Mutual labels:  eclipse, eclipse-plugin
maven-wrapper-plugin
Apache Maven Wrapper Plugin
Stars: ✭ 14 (-70.21%)
Mutual labels:  maven, maven-plugin
uml2solidity
A uml profile and a set of acceleo code generators to model smart contracts in uml and generate solidity code.
Stars: ✭ 35 (-25.53%)
Mutual labels:  eclipse, eclipse-plugin

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].