Hi Gabor,
welcome to the project.
You raise a fair point. Why are the repository configurations not in
the pom.xml itself. The reason is precisely the one you cite: to allow
a decoupling of the way the artifacts are fetched from remote repositories.
The settings.xml can and should be replaced by an equivalent one, e.g.
pointing to Nexus or other repository manager, when behind a corporate
firewall.
It's the responsibility of whoever is controlling the build environment
to provide the appropriate settings.xml. The one provide in the
codebase works with open internet access and can be used as a starting
point for others. Keeping it separate makes it easier than having the
configuration in the pom.xml.
The repo configurations are not specific to the jbehave-core project but
can be used by all other jbehave projects. Given these other projects
don't inherit from the jbehave-core it would lead to unnecessary
duplication.
I hope this clarifies the reasons for this choice.
Cheers
On 12/08/2013 14:38, Gabor Czigola wrote:
Started working on jbehave-core codebase and wonder why there is a
settings.xml boundled in the source tree?
The purpose of settings.xml is to specify workspace specific mvn
settings, according to maven.jbehave.org/settings.html
<http://maven.jbehave.org/settings.html> it "should not be boundled to
any specific project" for a good reason: people specify for example
local proxy and repo settings. By forcing this particular settings.xml
you doom everyone requiring specific settings.
I don't see any reason why the definitions in settings.xml are not in
pom.xml actually? They do belong there, don't they?