Gradle based project to build Xtext test-editor languages.
The resulting language jars provide rich editing and test generation facilities. They are wrapped into rest services served by test-editor-backend.
Make sure to have a working nix installation. Please ensure that the nixpkgs-unstable
channel is available. It
can be added with nix-channel --add https://nixos.org/channels/nixpkgs-unstable
.
To enter the development environment, execute NIXPKGS_ALLOW_UNFREE=1 nix-shell
in this repos root directory. For even more convenience,
please install direnv which will enter the development environment automatically for you.
Once within the development environment, run ./gradlew build
to resolve all necessary dependencies and run all checks.
git clone https://github.com/test-editor/test-editor-xtext-gradle.git # clone the sources
curl https://nixos.org/nix/install | sh # get nix package manager (if you happen to not have it installed)
cd test-editor-xtext-gradle # switch into cloned repo
nix-shell # setup build environment (takes a bit on first invocation)
- Make sure to have
Xtext SDK 2.15
,Buildship 2.2.1
installed (e.g. use Eclipse DSL Edition 4.9.0) - Generate eclipse project meta data:
./gradlew eclipse
- Import this project as gradle project.
- Make sure to disable errors on dependency cycles (which eclipse runs in because of limited dependency resolution capabilities). Preferences -> Java -> Compiler -> Building -> Build Path Problems -> Circular dependencies
./gradlew build
If the build process stops with failures generating the Xtext languages, it usually helps to rerun all gradle tasks.
./gradlew build --rerun-tasks
In order to create a release switch to the master
branch and execute
./gradlew :release
and enter the new version. After the commit and tag is pushed Travis will automatically build and deploy the tagged version to Bintray.
You may notice a certain symmetry of the xtext language projects tsl, tcl and aml. To get a more detailed description of the subprojects, please look at their respective README.md.
-
aml.dsl Xtext language definition for the application mapping language (aml)
-
aml.dsl.ide Additional functionality for editors for the aml
-
aml.dsl.testing Testing code that can be reused by other projects
-
aml.dsl.web Project for web-editor specific code (purely generated from aml.dsl)
-
aml.model Xcore model for the AST of parsed aml artifacts
-
dsl.common Reusable functionality for all test-editor languages (tsl, tcl, aml)
-
dsl.common.model Reusable functionality for all test-editor language AST models
-
dsl.common.testing Reusable functionality for testing all test-editor languages
-
logging Common logging definitions
-
tcl.dsl Xtext language definition for the test case language (tcl)
-
tcl.dsl.ide Additional functionality for editors for the tcl
-
tcl.dsl.testing Testing code that can be reused
-
tcl.dsl.web Project for web-editor specific code (purely generated from tcl.dsl)
-
tcl.model Xcore model for the AST of parsed tcl artifacts
-
tsl.dsl Xtext language definition for the test specification language (tsl)
-
tsl.dsl.ide Additional functionality for editors for the tsl
-
tsl.dsl.web Project for web-editor specific code (mostly generated from tsl.dsl)
-
tsl.model Xcore model for the AST of parsed tsl artifacts
Given the number of subprojects within this project, the following graphics may shed some light into what dependencies currently exist.
Compile
dependencies are regular arrows, testCompile
dependencies are dashed arrows