-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 What about a plugin that generates those pom files somehow? you'd need a map of interdependencies, I guess...but rather than instantiating a bunch of 'ghost' POMs on the fly, a generator plugin could give you something to put in version control and track history on...
Just a thought. - -john Ashley Williams wrote: | I believe with just a few pom.xml tweaks I've managed to get something | of a single source project to work with maven. It could be that a few | bug fixes since Maven alpha have helped since the last time I tried but | here's what I did. | | 1. Designed a bogus project consisting of a gui artifact that depends | on a util artifact each with a single class: Main.java and Util.java | respectively. Additionally the gui component uses a resource file | called gui.properties. I then arranged this project into the following | directory structure: | | com | --------acme [pom.xml] | ----------------util [Util.java, pom.xml] | ----------------gui [Main.java, pom.xml] | ------------------------resources [gui.properties] | | | 2. The gui and util poms only declare the acme/pom as a parent and | don't even have their own build section. The acme/pom.xml parent | contains the necessary tweaks that the child poms inherit, namely | inside the build section: | | acme/pom.xml: | | <project> | <modelVersion>4.0.0</modelVersion> | <groupId>com.acme</groupId> | <artifactId>app</artifactId> | <packaging>pom</packaging> | <version>1.0-SNAPSHOT</version> | <name>Acme Application</name> | <modules> | <module>util</module> | <module>gui</module> | </modules> | <build> | <sourceDirectory>.</sourceDirectory> | <resources> | <resource> | <directory>resources</directory> | </resource> | </resources> | </build> | </project> | ~ | | In other words the java files and resources/ directory are to be found | in the same directory as the pom.xml file for any given artifact project. | | 3. I ran the install phase as follows: | | > cd com/acme | > m2 install | | which caused the target directories to be generated also at the same | level as each pom - for example com/acme/util/target and com/acme/gui/ | target. | | 4. I examined the jar files in each target directory for example "jar | tvf com/acme/gui/target/gui-1.0-SNAPSHOT.jar" resulted in: | | META-INF/ | META-INF/MANIFEST.MF | META-INF/maven/ | META-INF/maven/com.acme/ | META-INF/maven/com.acme/gui/ | META-INF/maven/com.acme/gui/pom.xml | com/ | com/acme/ | com/acme/gui/ | com/acme/gui/Main.class | gui.properties | META-INF/maven/com.acme/gui/pom.properties | | which looks fine. I also ran "m2 site:site" as a random goal and that | seemed to work too, ie a target/site directory was created with all the | files correctly generated underneath. | | *************************** | | My conclusions are that it seems too easy so far and that I've missed a | howler - if somebody could point it out?? Also in the acme/pom.xml file | I would still need to add the equivalent test tags, eg | <testResourceDirectory>. | | Would it be possible to encapsulate these tweaks and any others that | become apparent into a plugin so I could do something like the | following in any application (root) pom: | | <build> | <plugins> | <plugin> | <groupId>com.maven.plugins</groupId> | <artifactId>project-structure</artifactId> | <version>1.0</version> | <configuration> | <method>one-tree</method> | </configuration> | </plugin> | </plugins> | </build> | | Thanks | AW | | --------------------------------------------------------------------- | To unsubscribe, e-mail: [EMAIL PROTECTED] | For additional commands, e-mail: [EMAIL PROTECTED] | | | -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.6 (GNU/Linux) iD8DBQFDMZCeK3h2CZwO/4URAkF8AJ9f2rxxfq+da4VUDlnkI8fWMm+0UgCggFeg MdvAC60sLpKhVf1+qQuqqB0= =C8AE -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
