On Sep 11, 2008, at 12:15 PM, Hans Dockter wrote:
Hi,
I have hit upon a current dir issue when porting a Maven build to
Gradle. Maven seems to change the current dir to the sub project it
is actual building. Some test classes in this subproject rely on
this as they use relative paths. Whether this is a design smell is
one question. The other question is if Gradle should also change
the current dir to the project dir of the task it is executing?
This Maven behavior described above is just the behavior of the
surefire plugin (for executing tests). It is supposed to do the
following:
From: http://jira.codehaus.org/browse/SUREFIRE-416
"To solve this, we're going to set user.dir to be ${basedir} when
forking; when not forking we'll temporarily change the global system
properties, and finally change them back. (This should be part of a
more general test of systemProperties when not forking.)"
I'm a bit sceptical of the solution taken by the surefire plugin:
See: http://bugs.sun.com/bugdatabase/view_bug.do;:YfiG?bug_id=4117557
"I've just come across this problem - code I've been working on uses
setProperty("user.dir", /xyz") and works as expected most of the time
because most Files are explicitly converted to absolute before native
filesystem accesses. However, some aren't, leading to occasional
unexpected behaviour.
I'm simply astounded by the slow and weak response to this simple
problem, and it's low priority. Whatever, the technical justification
for not supporting chDir, the inconsistent behaviour in File and In/
OutputStreamFile should be made consistent, or at least documented in
the API. Furthermore, fixing it will cause behaviour change
inexisting code - probably need a flag somewhere to specifiy whether
paths are resolved against jvm working directory, or user.dir, or
sometimes one and sometimes the other as is the current behaviour."
So I think we should not do change the user.dir by default as Java
does not guarantee correct behavior. The user's who need the 'Maven'
behavior can set those properties in the build scripts. I gonna give
this a try now.
- Hans
- Hans
--
Hans Dockter
Gradle Project lead
http://www.gradle.org
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
--
Hans Dockter
Gradle Project lead
http://www.gradle.org
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email