Coder Social home page Coder Social logo

vakuum / polyglot-java Goto Github PK

View Code? Open in Web Editor NEW
27.0 2.0 10.0 101 KB

A demonstration on how to integrate different JVM languages into a multi-module Maven build.

License: MIT License

Java 61.20% Clojure 4.89% Gosu 4.09% Groovy 4.49% Kotlin 3.92% Python 3.31% Ruby 5.58% Scala 4.83% Xtend 4.23% Frege 3.45%
jvm-languages java clojure frege gosu groovy kotlin python ruby scala

polyglot-java's Introduction

polyglot-java Build status

polyglot-java demonstrates how to integrate different JVM languages into a multi-module Maven build.

Covered Languages

Requirements

Java 11

$ export JAVA_HOME=/opt/jdk-11
$ export PATH=$JAVA_HOME/bin:$PATH

$ java -version
openjdk version "11" 2018-09-25
...

Maven 3.6

$ export M2_HOME=/opt/maven-3.6
$ export PATH=$M2_HOME/bin:$PATH

$ mvn --version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
...

Usage

$ git clone https://github.com/vakuum/polyglot-java.git

Execute

$ cd polyglot-java
$ cat all/src/main/java/polyglot/All.java
$ mvn clean install -DskipTests
$ mvn exec:java --projects all
...
Hello, I am Java!
Clojure: Hello Java!
Frege: Hello Java!
Gosu: Hello Java!
Groovy: Hello Java!
Hoot: Hello Java!
Java: Hello Java!
Kotlin: Hello Java!
Python: Hello Java!
Ruby: Hello Java!
Scala: Hello Java!
Xtend: Hello Java!
...

Execute a specific module

$ cd polyglot-java
$ mvn clean install -DskipTests
$ mvn exec:java --projects clojure
...
Clojure: Hello Clojure!
...

$ mvn exec:java --projects frege
...
Frege: Hello Frege!
...

$ mvn exec:java --projects gosu
...
Gosu: Hello Gosu!
...

$ mvn exec:java --projects groovy
...
Groovy: Hello Groovy!
...

$ mvn exec:java --projects hoot
...
Hoot: Hello Hoot!
...

$ mvn exec:java --projects java
...
Java: Hello Java!
...

$ mvn exec:java --projects kotlin
...
Kotlin: Hello Kotlin!
...

$ mvn exec:java --projects python
...
Python: Hello Python!
...

$ mvn exec:java --projects ruby
...
Ruby: Hello Ruby!
...

$ mvn exec:java --projects scala
...
Scala: Hello Scala!
...

$ mvn exec:java --projects xtend
...
Xtend: Hello Xtend!
...

Executable JAR

$ cd polyglot-java
$ mvn clean install -DskipTests
$ mvn package assembly:single --projects all -DskipTests
$ java -jar all/target/polyglot-java.jar
...
Hello, I am Java!
Clojure: Hello Java!
Frege: Hello Java!
Gosu: Hello Java!
Groovy: Hello Java!
Hoot: Hello Java!
Java: Hello Java!
Kotlin: Hello Java!
Python: Hello Java!
Ruby: Hello Java!
Scala: Hello Java!
Xtend: Hello Java!
...

Tests

$ cd polyglot-java
$ cat all/src/test/java/polyglot/TestAll.java
$ mvn clean install -DskipTests
$ mvn test --projects all
...
Tests run: 12, Failures: 0, Errors: 0, Skipped: 0
...

License

Copyright (c) 2012-2021 Clemens Fuchslocher, released under the MIT license.

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.