= Building Tackler Tackler build is done by link:http://www.scala-sbt.org/[sbt]. == Source code Tackler source code is located at link:https://gitlab.com/e257/accounting/tackler[GitLab / E257 / Accounting / Tackler] == Building and testing ---- LC_ALL=C.UTF-8 sbt clean compile ---- === Running tests ---- LC_ALL=C.UTF-8 sbt test it:test ---- Some of the integration tests generate lots of output or take several minutes run. Especially `cli/it:test` generates lots of output and `core/it:test` takes few minutes to run. It might be helpful to run tests selectively, especially in case of errors: Start `LC_ALL=C.UTF-8 sbt` and run on sbt shell: .... > apiJVM/test > core/test > cli/test .... ==== Running integration tests You could run integration tests all at once (`core/it:test`, `cli/it:test`) or by step-by-step. `core/it:test` contains some performance tests. ---- > core/it:test > cli/it:test # or select wanted Dirsuite > cli/it:testOnly fi.e257.tackler.cli.Dirsuite... ---- == Generating binaries ---- sbt cli/assembly ---- == Code coverage ---- LC_ALL=C.UTF-8 sbt clean coverage test it:test && sbt coverageAggregate ---- == IntelliJ If IntelliJ can not compile e.g. unit tests, make sure that under settings for all subprojects (`tackler`, `cli`, `core`) compile order is `java then scala`. Easiest way to generate parser definition is run `sbt compile`. You can also install ANTLR plugin, but it must be configured correctly for package-names and output paths. == ANTLR IntelliJ ANTLR plugin has really nice graphical tree display to visualize and test parser rules. ''' Tackler is distributed on an *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND*, either express or implied. See the link:../../LICENSE[License] for the specific language governing permissions and limitations under the link:../../LICENSE[License].