I like your ideas, but plesae do not mix hibernate and hibernateext again.

If you want to improve something - then improve hibernateext build system.

I already has the proposed structure (except avalon plugin which is partially maven (not good!))

And another point - please do NOT use environment variables to decide on anything vital - use a build.properties file which is standard "ant-way".

/max

Les Hazlewood wrote:

 > The "über" layout i'm looking for is:
 >
 > hibernate/modules/core
 > hibernate/modules/core/etc
 > hibernate/modules/core/src/java
 >
 > hibernate/modules/hbm2java
 > hibernate/modules/hbm2java/etc hibernate/modules/hbm2java/src/java
 >

That is _exactly_ what I was proposing.

There would be a "master" build.xml file in the top level hibernate directory, i.e. hibernate/build.xml and each module would have its own:

hibernate/modules/core/build.xml
hibernate/modules/hbm2java/build.xml
.
.
.

The "master" build.xml would coordinate how the modules interact and their build dependencies.

To appease Gavin, a nice approach of leaving jars out of CVS, but still having access to the required jars: I use a very handy approach to ensure that environment variables are set up (and therefore provide access to required jars). If they're not, a nice message is echoed to the developer to let them know of any dependencies. This allows you to have a "full install" of any dependency product we use (like Max refers to in the Maven thread), although its not automatic like Maven...you have to install/untar/unzip whatever dependency you use and then set an environment variable for each install. IMHO, this is a very minor consequence to providing a clean build.

For example, in an ant file:

<property environment="env"/>

<!-- classpaths are set here, using the environment variables... -->
...

<!-- now we check to see if the environment variables we reference
     are set properly -->

<target name="check-hibernate" unless="env.HIBERNATE_HOME">
  <fail>
    Environment variable "HIBERNATE_HOME" is not set.  Please set the
    environment variable HIBERNATE_HOME to the Hibernate 2.1 (or better)
    installation directory.
  </fail>
</target>

<target name="check-jdbc-dir" unless="env.JDBC_DRIVER_DIR">
  <fail>
    Environment variable "JDBC_DRIVER_DIR" is not set.  Please set the
    environment variable JDBC_DRIVER_DIR to a directory containing
    jdbc driver jar files for all databases that may be used.
  </fail>
</target>

<target name="check-environment"
        depends="check-hibernate,check-jdbc-dir"/>


By running check-environment, you ensure that you have access to all jar files you may need. If the home variables aren't set, a nice message is displayed to the builder, enabling them to get whatever version they need, then set the env var, and be on their way building again...


Unfortunately, this approach does not solve the versioning dependencies, but at least it is a manageable approach to getting jar files out of cvs. Another approach would be to set the environment variables using version numbers in them, then this would solve that problem too (e.g. XERCES_2.0.1_BETA_HOME).

I'll whip up a complete über build sometime after this weekend (after the family leaves) and let you folks look at it. You can pick and choose what you like or not use any of it, your choice of course. However, I'm fairly sure you'll appreciate at least some of the cleaner approaches ;)

I've looked at Maven a lot the last 2 or 3 months, and its benefits become more and more apparent. However, I'm still in the gray as to if it would be flexible enough to do what I would want. Yes, it may take longer to write an Ant über build (not that much longer), but at least I know Ant and I _know_ I can get it to do what I want.

Les




------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ hibernate-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/hibernate-devel

Reply via email to