Hi Linus, It sounds like you've made a lot of progress towards getting the Maven build working. Perhaps our next step should be to try and get the an installable build working. To do this we'd need to:
1. Modify the pom's so that they're picking up the resources properly and putting them in the jar files. 2. Create assemblies that combine the JAR files and the dependencies into a single installable zip file. 3. Create the webstart build using the WebStart mojo: http://mojo.codehaus.org/webstart/webstart-maven-plugin/ 4. Create the Mac build using the Mac/Maven mojo: http://mojo.codehaus.org/osxappbundle-maven-plugin/ It might also be worth taking a look at the IzPack mojo. This would allow us to generate a cross-platform installer, with support for optional module downloads and installs. http://izpack.codehaus.org/izpack-maven-plugin/index.html What do you think? Mark On Tue, Aug 9, 2011 at 12:19 PM, Linus Tolke Tigris <[email protected]>wrote: > Hello Mark! > > The work I have done is with almost no maven experience so I will try to > understand what you are asking and answer. > > Let me first describe how it works now. > > The maven-site job is job with everything. It checks out argouml (and > argouml-actionscript3) from trunk and runs maven targets install and site > using the file argouml/tools/maven/toppom.xml. This includes running all > tests, checkstyle, pmd and findbugs. This also installs the > argouml/trunk/pom.xml (argouml-core) in the local repository as a snapshot. > > The argouml-tools and parentpom jobs just stores their respective poms in > the local repository. These poms are used by other jobs. > > All other maven jobs (argouml-actionscript3, argouml-app, > argouml-core-diagrams-activity2, argouml-core-diagrams-class2, > argouml-core-diagrams-deployment2, argouml-core-diagrams-sequence2, > argouml-core-diagrams-state2, argouml-core-diagrams-structure2, > argouml-core-model, argouml-core-model-euml, argouml-core-model-mdr, > argouml-core-notation, argouml-core-transformer, and > argouml-core-umlpropertypanels) just checks out the specific subproject, > fetches libraries from the argouml maven2 repository of released artifacts > and fetches poms and newly built snapshot versions of things built by other > jobs from the local repository. These uses the install target that runs all > tests and installs the resulting jar in the local repository. > > The Jenkins/Hudson maven plugin has functions that uses the knowledge of > things deployed in the local repository to start jobs when dependencies are > updated. This can be seen as Upstream projects and Downstream projects on > each project. For an example, see > http://closettop.homelinux.org:8080/job/argouml-app/. > > I will now attempt to answer your questions. > > *How mavenized is the rest of the build currently?* > So far my goal has been merely to avoid maintaining tools for the static > checks so an update of checkstyle of findbugs will be a simple change in a > single file and to use Jenkins reports. > * > * > *Do you build deployable artifacts?* > I am not sure. They are not signed, the build host does not have the key, > but they are deployed in the local repository on the build host.* > > * > *Do you build JAR files with maven?* > Yes, jar files are installed in the local repository and used by other > jobs. > * > * > *Do the JAR files contain the manifest file and appropriate META-INF > directories?* > I am not sure, I don't think so. I have not bothered about this since the > jars in the local repository are only used to build and run tests in other > maven jobs. > * > * > *Do you build installable artifacts?* > No. > * > * > *Does the build include assemblies that contain all of the dependent JARs? > * > No. > * > * > *Does the build create the webstart artifacts, the Mac DMG, and Linux > installs? Have you tried creating RPMs and pkgs for RedHat and Ubuntu > respectively?* > No. > > *Do all the projects have at least a minimal pom file and appropriate > references to the parent pom? I noticed that argo-core-diagrams-uml2 > didn't, but I don't know if this was intentional or not.* > No, just the projects mentioned above has poms. My plan is to extend this > one project at the time but I also get the feeling that it would be good if > this could be reviewed by someone with more maven knowledge, like you, to > make sure that this is the right direction. > > *Do the unit tests run, and do you currently generate a report from the > unit tests?* > Yes, well, the Jenkins/Hudson has its own reports that also has the time > dimensions (to see when a test starts to fail and stops failing) see > http://closettop.homelinux.org:8080/job/argouml-app/. > > The maven-site job also runs the mvaen site target to generate the maven > site but I see now that there is no rapport from the JUnit tests while the > other reports are there. See here: > http://closettop.homelinux.org:8080/job/maven-site/site/argouml-app/project-reports.html > > *Do you currently deploy the artifacts to a mvn repository (like > artifactory) so that if you're doing a build of module you don't have to > check out all of the other argouml projects? If it's deployed to a mvn > repository, and you do a mvn build, it will download the JARs for > argouml-core* and any other dependent projects. This minimizes the download > time, and lets people get up and running fairly quickly. > * > SNAPSHOT jars are only installed in the local repository on the build host > so that the other jobs can benefit from this. Other developers cannot > currently benefit from these builds. > > The java-interfaces jar should be build as a SNAPSHOT and installed in the > local repository by a job but I have not dared to run the mdr generation > from maven. Instead java-interfaces jar is treated as an external library > and taken from the argouml maven2 repository. The antlr builds, I have not > dared to address either. > > In an attempt not to confuse things I have confused things by using > different version numbers for the maven-builds SNAPSHOT jars and for the > development and stable builds. The maven-builds are only at 0.2. I have > attempted to state this version number in as few places as possible. I found > a maven discussion post with some pointers to do this. > > /Linus > > > > > 2011/8/9 Mark Fortner <[email protected]> > >> Hi Linus, >> How mavenized is the rest of the build currently? >> >> - Do you build deployable artifacts? >> - Do you build JAR files with maven? >> - Do the JAR files contain the manifest file and appropriate >> META-INF directories? >> - Do you build installable artifacts? >> - Does the build include assemblies that contain all of the >> dependent JARs? >> - Does the build create the webstart artifacts, the Mac DMG, and >> Linux installs? Have you tried creating RPMs and pkgs for RedHat and >> Ubuntu >> respectively? >> - Do all the projects have at least a minimal pom file and appropriate >> references to the parent pom? I noticed that argo-core-diagrams-uml2 >> didn't, but I don't know if this was intentional or not. >> - Do the unit tests run, and do you currently generate a report from >> the unit tests? >> - Do you currently deploy the artifacts to a mvn repository (like >> artifactory) so that if you're doing a build of module you don't have to >> check out all of the other argouml projects? If it's deployed to a mvn >> repository, and you do a mvn build, it will download the JARs for >> argouml-core* and any other dependent projects. This minimizes the >> download >> time, and lets people get up and running fairly quickly. >> >> Mark >> >> >> On Fri, Jul 15, 2011 at 4:36 PM, Linus Tolke Tigris <[email protected]>wrote: >> >>> Hello again Mark! >>> >>> I think I have solved the checksum problem now. I still get errors that >>> the poms are invalid though. I don't understand that problem. >>> >>> /Linus >>> >>> >>> 2011/7/16 Mark Fortner <[email protected]> >>> >>>> Hi Linus, >>>> When I do a build, I get messages like this: >>>> >>>> [WARNING] *** CHECKSUM FAILED - Error retrieving checksum file for >>>> org/argouml/argouml-mdr/0.32/argouml-mdr-0.32.jar - IGNORING >>>> >>>> [WARNING] *** CHECKSUM FAILED - Error retrieving checksum file for >>>> org/netbeans/mdr/nbmdr/0.0-5/nbmdr-0.0-5.jar - IGNORING >>>> >>>> [WARNING] *** CHECKSUM FAILED - Error retrieving checksum file for >>>> org/argouml/argouml-mdr/0.32/argouml-mdr-0.32.pom - IGNORING >>>> [WARNING] POM for 'org.argouml:argouml-mdr:pom:0.32:test' is invalid. >>>> >>>> Its dependencies (if any) will NOT be available to the current build. >>>> [WARNING] POM for 'org.argouml:java-interfaces:pom:0.32:test' is >>>> invalid. >>>> >>>> >>>> And a few like this: >>>> >>>> Downloading: >>>> http://argouml-downloads.tigris.org/maven2/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom >>>> [INFO] Unable to find resource >>>> 'org.codehaus.plexus:plexus-containers:pom:1.0-alpha-16' in repository >>>> argouml (http://argouml-downloads.tigris.org/maven2) >>>> Downloading: >>>> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom >>>> >>>> >>>> The project still builds properly though. >>>> >>>> Mark >>>> >>>> >>>> On Fri, Jul 15, 2011 at 2:52 PM, Linus Tolke Tigris >>>> <[email protected]>wrote: >>>> >>>>> Hello Mark! >>>>> >>>>> I think I have understood how to synchronize the version numbers >>>>> throughout the maven pom files. It is, however, not synchronized with the >>>>> version numbers of the stable and development builds. >>>>> >>>>> What are the old versions you are referring to? I find the >>>>> java-interfaces jar. Is that the one? >>>>> >>>>> The maven build uses only tools downloaded from maven (with version >>>>> specified in the parentpom.xml). No ant files or property files are used >>>>> so >>>>> the pom files constitute a complete set of configuration files. As you can >>>>> see I have managed to get it to build in the Hudson server. What is it >>>>> that >>>>> is not working for you? >>>>> >>>>> /Linus >>>>> >>>>> >>>>> 2011/7/15 Mark Fortner <[email protected]> >>>>> >>>>>> Hi Linus, >>>>>> Now that you have the new build machine setup, have you made any >>>>>> progress with updating the maven pom files? There still seem to be a >>>>>> lot of >>>>>> references to an old mvn repo, where it tries to download outdated >>>>>> artifacts. I did a checkout recently to setup a new machine with argouml >>>>>> and >>>>>> I'd forgotten how painful it is to get a argouml into a buildable state. >>>>>> Not to mention the fact that there's a dissertation, and a whole lot of >>>>>> tools checked into the svn repo. >>>>>> >>>>>> Regards, >>>>>> >>>>>> Mark >>>>>> >>>>>> >>>>>> >>>>>> On Sun, Jun 5, 2011 at 5:54 AM, Linus Tolke Tigris >>>>>> <[email protected]>wrote: >>>>>> >>>>>>> Hello all! >>>>>>> >>>>>>> I have now replaced the old host running the continuous integration >>>>>>> and nightly build with a new one. It is a P4 Dual 2.6GHz with 2GB memory >>>>>>> instead of a P2 400MHz with 512M, Ubuntu instead of Debian and Jenkins >>>>>>> instead of Hudson. Everything is a lot quicker. >>>>>>> >>>>>>> /Linus >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> > ------------------------------------------------------ http://argouml.tigris.org/ds/viewMessage.do?dsForumId=450&dsMessageId=2813180 To unsubscribe from this discussion, e-mail: [[email protected]]. To be allowed to post to the list contact the mailing list moderator, email: [[email protected]]
