Menu

Maven project structure

2013-02-08
2013-08-16
  • Bernhard Friedreich

    Hi!

    I wanted to test joxy and so I checked out the repository, searched for information on how to get it to work and because I didn't want to search for much longer I converted the project into a maven project.

    I've done some cleanup in the repository and files, commented out 2 non compiling unit tests and uploaded the whole stuff in my fork.

    I'll request a merge soon :)

    Nice work :) although I haven't been able yet to try it as the style won't be applied to any of my java programs :(

    Bernhard

     
  • Willem3141

    Willem3141 - 2013-02-09

    Hello Bernhard,

    Thank you for your work! The only build-automation tool I used before is Ant, so I never used Maven before, but I cloned your repository and it works for me :-)
    I like having an automated build system, but I have a few remarks/questions:

    • The packages for Arch and Chakra would probably need to be updated, if this is merged to master, and would need to depend on Maven, I think. Is there a way to keep the current directory structure and support Maven both, so that using Maven is optional?
    • I am not sure about including Lombok. You only seem to use it in HCYColor, and I personally don't see the real advantage of it, since it includes an additional dependency.
    • These tests were not compiling indeed, we are busy doing some architectural changes in the painters, and they are breaking the tests. So we are aware of it :-)
    • As I said, I know only a little about Maven, but if I use mvn install this doesn't seem to install the jar file in the right directory, as described here: http://www.denvelop.nl/joxy/documentation/install/. That could explain why it isn't working for you. Please keep in mind also that you need to either add -Dswing.defaultlaf=joxy.JoxyLookAndFeel to the command line (or set the default LAF to Joxy) to switch the LAF to Joxy. More information here: http://www.denvelop.nl/joxy/documentation/usage/.
    • If you think the documentation isn't clear enough, please mention it, so we can improve it :-)

    Thanks again!

    Willem

     

    Last edit: Willem3141 2013-02-13
    • Lukas Jirkovsky

      Lukas Jirkovsky - 2013-02-20

      Updating the Arch package wouldn't be a problem.

       
  • Bernhard Friedreich

    Ah... damn.. sourceforge doesn't email me on forum entries -.- I already thought this project is dead because no one reacted.. sorry..

    To answer your questions: first of all: this sure needs more work - to work for mvn install for example. Normally mvn install installs to your local mvn repository under (~/.m2/repository).

    -) I don't know about the packaging but for arch I could also look into as soon as my wayland tryouts are over :P
    -) lombok was just a try and is by no means a must for me - I'll revert that soon :)
    -) okay so you are still working on it cool :)
    -) no I did manually copy the jar and the so into place but it still didn't work :(
    -) actually I think the documentation is pretty good and I could follow it easily (beside of the compilation itself) but I haven't found out yet why it is not working...

     
  • Bernhard Friedreich

    Another good opportunity using maven would be release management. Releasing/Tagging, creating branches is all a breeze using maven :) - once set up :P

     
  • Bernhard Friedreich

    As for the packaging aspect:

    My vision would be something like this:

    cd ~/joxy/checkoutdir (svn directory: https://.../joxy/trunk) (version: 0.1-SNAPSHOT)
    mvn clean test (check if all tests are working)
    mvn release:branch -DbranchName=0.1
    svn switch https://.../joxy/branches/0.1

    $do_last_checkup

    mvn release:prepare (a local switch from 0.1-SNAPSHOT to 0.1 happens and is commited to svn)
    mvn release:perform (everything is built and afterwards the local version changes to the user input (e.g. 0.1.2-SNAPSHOT))

    Using this approach you can create bugfix releases from the 0.1 branch everytime and work in trunk on your next bigger release.

    Later on you could also upload the generated jar files to the mvn central repository as a file hoster and if you are providing some sort of api as a library for others to use.

    The packagers of various distros could just go and grab the jar file and so file from some repository (e.g. the mvn central repository) and install it to a location they like best)

    (I'm just proposing things here)

     

    Last edit: Bernhard Friedreich 2013-02-27
  • Willem3141

    Willem3141 - 2013-08-16

    Hello Bernhard,

    It has taken some time ;-) but we are busy switching to Maven now. We want to use Maven for the next version, 0.3.0.

    Because our source code has diverged quite a lot from your branch, we cannot merge it directly. Instead, we are applying the changes by hand.

    You can find our current Maven branch in the maven-conversion branch in the Git repository.

    Thank you for your help,
    Willem

     
  • Bernhard Friedreich

    Very nice :) Looking forward to it :)

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.