You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by b....@valbosoft.com on 2008/12/23 14:15:46 UTC

different behaviour on windows and linux




Hello,

I'm installing hudson continuous integration on a Ubuntu box (maven 2.0.9)
to execute my maven integration tests. This test is working fine in my
myeclipseide. However, on the new machine at some points it has a different
behaviour, and I can't pin down the cause.

First thing is that I execute tests and integration tests, the latter uses
cactus. All my test classes are in the /src/test/java directory, the cactus
tests are all in the separate package "cactus".
I have the normal test configured (with the cactus exclusions) in the main
build part, while I have another surefire plugin defined in the testing
profile, for the phase integration-test.
When executing the normal tests, I exclude the cactus package, and that
works just fine on my windows box. However, on the linux machine they ALL
get executed (so the cactus tests fail). It seems like the exclude option
isn't working. Has this got to do with having the plugin defined twice? (on
windows it works well).

Second thing is that according to the profile, I copy resource files into
the webapp from different locations, in some cases they overwrite existing
/src/main/webapp files. This works fine on windows, however on the linux
machine I always keep on getting the original webapp files.

I've been working on this all day, I've tried "packagingExcludes" to not
include the webapp files in the first place (which works fine on my windows
box, and not on the linux machine)..
In the end I've solved this by changing the date of the copied file to
today, so that maven doesn't say it's up to date. However, I need it to be
copied always. I've added the tag <overwrite>true</overwrite> to the
resource, but with no effect. What is the right way to copy resources, and
overwrite if necessary? (My only thought right now is to write an ant
script to touch it every time I run).

Could anybody  point me in the right direction on these issues?

Cheers, Bo


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: different behaviour on windows and linux

Posted by Boudewijn van Weert <b....@valbosoft.com>.
Hi,

thanks for the good tips, I'll try it.

I overwrite property files of a war overlay: the base war project has
default values, for specific projects I overwrite them. I managed to
guarantee the overwriting by calling ant touch, but this seems far from
elegant/optimal to me.. Isn't there some maven parameter to overwrite
resource files unconditionally?

Cheers, Bo

2008/12/24 Baptiste MATHUS <ml...@batmat.net>

> How do you run those unit tests inside Eclipse?
> Did you try running maven with the CLI on your machine before trying inside
> your CI server? That's the very first thing to check. In fact, running
> tests
> inside the IDE can rarely the exact same classpath configuration, isolation
> and so on, mostly because of the IDE limitations.
>
> And if you have a separate source folder, then those sources might simply
> not have been used/detected. See maven-buildhelper-plugin to add any source
> folder to the build.
>
> For your problem of copying, of do you do it? Copying files between modules
> seems a bit strange to me. Did you just check the path is the same on the
> two platforms?
>
> Did you try debugging by using both mvn help:effective-pom and mvn
> help:effective-settings? It can often help.
>
> Cheers
>
> 2008/12/23 <b....@valbosoft.com>
>
> >
> >
> >
> >
> > Hello,
> >
> > I'm installing hudson continuous integration on a Ubuntu box (maven
> 2.0.9)
> > to execute my maven integration tests. This test is working fine in my
> > myeclipseide. However, on the new machine at some points it has a
> different
> > behaviour, and I can't pin down the cause.
> >
> > First thing is that I execute tests and integration tests, the latter
> uses
> > cactus. All my test classes are in the /src/test/java directory, the
> cactus
> > tests are all in the separate package "cactus".
> > I have the normal test configured (with the cactus exclusions) in the
> main
> > build part, while I have another surefire plugin defined in the testing
> > profile, for the phase integration-test.
> > When executing the normal tests, I exclude the cactus package, and that
> > works just fine on my windows box. However, on the linux machine they ALL
> > get executed (so the cactus tests fail). It seems like the exclude option
> > isn't working. Has this got to do with having the plugin defined twice?
> (on
> > windows it works well).
> >
> > Second thing is that according to the profile, I copy resource files into
> > the webapp from different locations, in some cases they overwrite
> existing
> > /src/main/webapp files. This works fine on windows, however on the linux
> > machine I always keep on getting the original webapp files.
> >
> > I've been working on this all day, I've tried "packagingExcludes" to not
> > include the webapp files in the first place (which works fine on my
> windows
> > box, and not on the linux machine)..
> > In the end I've solved this by changing the date of the copied file to
> > today, so that maven doesn't say it's up to date. However, I need it to
> be
> > copied always. I've added the tag <overwrite>true</overwrite> to the
> > resource, but with no effect. What is the right way to copy resources,
> and
> > overwrite if necessary? (My only thought right now is to write an ant
> > script to touch it every time I run).
> >
> > Could anybody  point me in the right direction on these issues?
> >
> > Cheers, Bo
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
>
>
> --
> Baptiste <Batmat> MATHUS - http://batmat.net
> Sauvez un arbre,
> Mangez un castor !
>

Re: different behaviour on windows and linux

Posted by Baptiste MATHUS <ml...@batmat.net>.
How do you run those unit tests inside Eclipse?
Did you try running maven with the CLI on your machine before trying inside
your CI server? That's the very first thing to check. In fact, running tests
inside the IDE can rarely the exact same classpath configuration, isolation
and so on, mostly because of the IDE limitations.

And if you have a separate source folder, then those sources might simply
not have been used/detected. See maven-buildhelper-plugin to add any source
folder to the build.

For your problem of copying, of do you do it? Copying files between modules
seems a bit strange to me. Did you just check the path is the same on the
two platforms?

Did you try debugging by using both mvn help:effective-pom and mvn
help:effective-settings? It can often help.

Cheers

2008/12/23 <b....@valbosoft.com>

>
>
>
>
> Hello,
>
> I'm installing hudson continuous integration on a Ubuntu box (maven 2.0.9)
> to execute my maven integration tests. This test is working fine in my
> myeclipseide. However, on the new machine at some points it has a different
> behaviour, and I can't pin down the cause.
>
> First thing is that I execute tests and integration tests, the latter uses
> cactus. All my test classes are in the /src/test/java directory, the cactus
> tests are all in the separate package "cactus".
> I have the normal test configured (with the cactus exclusions) in the main
> build part, while I have another surefire plugin defined in the testing
> profile, for the phase integration-test.
> When executing the normal tests, I exclude the cactus package, and that
> works just fine on my windows box. However, on the linux machine they ALL
> get executed (so the cactus tests fail). It seems like the exclude option
> isn't working. Has this got to do with having the plugin defined twice? (on
> windows it works well).
>
> Second thing is that according to the profile, I copy resource files into
> the webapp from different locations, in some cases they overwrite existing
> /src/main/webapp files. This works fine on windows, however on the linux
> machine I always keep on getting the original webapp files.
>
> I've been working on this all day, I've tried "packagingExcludes" to not
> include the webapp files in the first place (which works fine on my windows
> box, and not on the linux machine)..
> In the end I've solved this by changing the date of the copied file to
> today, so that maven doesn't say it's up to date. However, I need it to be
> copied always. I've added the tag <overwrite>true</overwrite> to the
> resource, but with no effect. What is the right way to copy resources, and
> overwrite if necessary? (My only thought right now is to write an ant
> script to touch it every time I run).
>
> Could anybody  point me in the right direction on these issues?
>
> Cheers, Bo
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>


-- 
Baptiste <Batmat> MATHUS - http://batmat.net
Sauvez un arbre,
Mangez un castor !