TestRoots / watchdog

IntelliJ & Eclipse plugin for monitoring how Java applications are developed and tested
http://www.testroots.org
Other
18 stars 10 forks source link

Create root pom.xml #270

Closed TimvdLippe closed 6 years ago

TimvdLippe commented 6 years ago

This PR introduces a root pom.xml to be able to import this project more easily in an editor. Moreover, building the project is now a simple mvn install in the root folder, instead of running the Travis bash file.

Sadly the number of files changed is largely, but a summary of the changes is:

  1. Create root pom.xml to replace custom directory changing logic from travis_build.sh
  2. Move WatchDogIntellijPlugin/WatchDog to WatchDogIntellijPlugin. This interim directory was not necessary and was blocking step 3.
  3. Introduce maven-exec-plugin with maven lifecycle mappings in order to succesfully run all tests and fetch the prerequisites. This means that mvn test will now properly run the Ruby tests in WatchDogServer and mvn install will properly fetch a local version of IntelliJ if necessary
  4. I have also updated the IntelliJ configuration files to load in my editor.
  5. Ignore all Eclipse .settings/ which seemed to clutter the diff a lot. At the same time the .gitignore has been updated to reduce duplication and only ignore the files that are cluttering the diffs.

The introduction of a root pom.xml also meant that I had to update the various artifact ID's of the subprojects, as there were duplicate IDs. Therefore most of the changes reflect these renames, as well as in the actual code (magic Strings FTW).

TimvdLippe commented 6 years ago

Investigating the issue of installing the Intellij local dependency right now.

TimvdLippe commented 6 years ago

@Inventitech All right, this PR is now up for review. I made some typos and wrong assumptions with Travis building. Note that the push build failed because of flaky tests, but pr build is working just fine. Sadly I can't retrigger Travis builds, but it should "just" work after restarting that failed job.

Inventitech commented 6 years ago

Have a look at the reactor summary, too: Now:

[INFO] Reactor Summary:

[INFO] 

[INFO] parent ............................................. SUCCESS [  0.005 s]

[INFO] watchdog-core-parent ............................... SUCCESS [  0.001 s]

[INFO] nl.tudelft.WatchDogCore ............................ SUCCESS [  0.985 s]

[INFO] WatchDogCore ....................................... SUCCESS [  0.087 s]

[INFO] watchdog-eclipse-plugin ............................ SUCCESS [  0.003 s]

[INFO] nl.tudelft.WatchDog.eclipse ........................ SUCCESS [ 14.594 s]

[INFO] WatchDogUnitTests .................................. SUCCESS [ 30.341 s]

[INFO] WatchDog ........................................... SUCCESS [  0.094 s]

[INFO] nl.tudelft.watchdog.p2updatesite ................... SUCCESS [ 18.702 s]

[INFO] watchdog-intellij-plugin ........................... SUCCESS [  1.089 s]

[INFO] watchdog.server .................................... SUCCESS [  2.112 s]

Used to be:

[INFO] Reactor Summary:

[INFO] 

[INFO] parent ............................................. SUCCESS [  0.003 s]

[INFO] nl.tudelft.WatchDog ................................ SUCCESS [ 23.714 s]

[INFO] WatchDogUnitTests .................................. SUCCESS [ 35.019 s]

[INFO] WatchDog ........................................... SUCCESS [  0.102 s]

[INFO] nl.tudelft.watchdog.p2updatesite ................... SUCCESS [ 20.313 s]

[INFO] ------------------------------------------------------------------------

The number of built entities and their naming schema is quite confusing now.

TimvdLippe commented 6 years ago

RE: Reactor

Yes that is different, as the root pom.xml now executes every single module. Most modules have no tests or anything, so that is not needed. I was planning on addressing the naming schema in a subsequent PR, to not clutter this one.

TimvdLippe commented 6 years ago

@Inventitech I have added a CONTRIBUTING.md (https://github.com/TestRoots/watchdog/blob/parent-pom/CONTRIBUTING.md) with the updated instructions to import this project. Especially the IntelliJ instructions should be a lot easier now :smile: