build: Extract common config to top-level build.gradle
We can inject plugin, repositories and dependencies directly from
the top-level build.gradle.
This extracts a common version of junit for all projects (and
updates anagram to use assertj, the junit matchers did not work
with 4.12).
Fixes https://github.com/winterchord/xjava/commit/d09fb713d19abbcbdaaa979adb59aa7fc94532fd#commitcomment-14962172
The original PR (https://github.com/exercism/xjava/pull/69) that this issue
could have been fixed in was merged before I could fix this issue.
This implementation does not generate a test suite based on the json
meta the hello-world exercise.
See https://github.com/exercism/todo/issues/13
Fixes https://github.com/exercism/todo/issues/35
- where files are required from the "starter" (./src/main/java), these
are now soft-linked into the example source.
- a couple examples were missing import statements.
- the example code for Hamming was failing the test suite.
At this time, these are all of the problems that have example code.
- without this output, another contributor might make the reasonable
(but incorrect) assumption that the source being compiled to exercise
the tests are from 'src/main/java'.
- move example.java so we can refer to it in Gradle as a soureSet.
- Java requires public classes be contained in identically-named files.
- using latest Travis infrastructure (better, stronger, faster).
- each piece of travis config has been confirmed as minimum necessary at
this time.
- without JDK specified, would run with default (Java 7)
- without TERM=dumb, travis output is unreadable.
anagram: Clarify expectations about identical words
An anagram is defined as
1. the same letters
2. rearranged
3. to make a new word
The existing assertion only checked the presence of the expected word,
but did not explicitly exclude the existence of results that match the
input exactly.
Revert "Move example source into a conventional source root location."
This reverts commit c2657807be96bc6aecfc34781ca6963477b1fe29.
If we want to do this, we'll need to do it more systematically to
avoid breaking the build and confusing people who may be used to
finding the solution in a particular place.