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]]

Reply via email to