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=2813170

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