On 01/06/2015 07:28 PM, Gilles wrote: > On Tue, 06 Jan 2015 17:49:35 +0100, Thomas Neidhart wrote: >> On 01/06/2015 12:58 PM, Gilles wrote: >>> On Tue, 06 Jan 2015 08:51:32 +0100, Thomas Neidhart wrote: >>>> On 01/05/2015 11:58 PM, Gilles wrote: >>>>> On Mon, 5 Jan 2015 23:48:43 +0100, Bernd Eckenfels wrote: >>>>>> Am Mon, 05 Jan 2015 23:35:49 +0100 >>>>>> schrieb Gilles <gil...@harfang.homelinux.org>: >>>>>> >>>>>>> Which docs? >>>>>>> I didn't intend to move the "userguide" document; only the Java >>>>>>> examples currently under "src/userguide/java" would be moved to >>>>>>> "src/main" >>>>>> >>>>>> I wont mention multiple modules (also this might be a case where it >>>>>> makes sense, especially if you want to create a dedicated example jar >>>>>> file with its own set of dependencies and as it might avoid calling >>>>>> ant scripts for it), but I would keep the source separated and rather >>>>>> add an additional source directory (with the buildhelper). >>>>>> >>>>>> <plugin> >>>>>> <groupId>org.codehaus.mojo</groupId> >>>>>> <artifactId>build-helper-maven-plugin</artifactId> >>>>>> <executions> >>>>>> <execution> >>>>>> <phase>initialize</phase> >>>>>> <goals><goal>add-source</goal></goals> >>>>>> <configuration> >>>>>> <sources> >>>>>> <source>src/userguide/java</source> >>>>>> </sources> >>>>>> </configuration> >>>>>> </execution> >>>>>> </executions> >>>>>> </plugin> >>>>>> >>>>>> NB: this will produce classes on target/classes so you need to >>>>>> exclude >>>>>> them in the JAR. >>>>>> >>>>> >>>>> Thanks. >>>>> I find it cleaner to keep the examples separated from the "main" code; >>>>> so if this does the trick, I'd prefer it that way. >>>>> We'd nevertheless need that separate JAR that contains the examples, >>>>> and a mean to select which of the examples must be run, as proposed >>>>> by Sebb. >>>> >>>> The examples can not be added to the main code as there is an >>>> additional >>>> dependency (xchart) that we do not want to add to commons-math in >>>> general. >>> >>> It was never intended to ship the examples as part of the CM >>> library. [There are provisions in the "pom.xml" to prevent it (IIUC).] >>> IIUC, Sebb proposed that the source code be moved solely for >>> the purpose that maven would compile it with the default config. >> >> I was not talking about packaging. >> >>> IIUC, with Bernd's proposal, this move is thus not necessary. >> >> Neither will work, unless you add the relevant dependencies to the main >> pom.xml which we certainly do not want. >> >> I just wanted to point this out before anybody is doing a change. > > As long as the CM library have no dependencies, is it a problem > that non-packaged (or separately packaged) code does have dependencies? > > Or is it that it will be more complicated to ensure that there is no > such dependencies for CM itself once the "pom" file refers to them? > > Or is it that really the "pom" file is not allowed to contain such > references?
The userguide has dependencies and in order to compile it as part of the "normal" commons-math codebase, e.g. using mvn compile, these dependencies have to be specified in the pom.xml. Afaik the only way to exclude these dependencies would be to use the scope "provided", but it is certainly a solution I would not suggest as it wrongly implies that commons-math has a reference to them, while in fact it hasn't, only the userguide part. Normally, you solve this situations by using a multi-module setup, as said below. >> The best option would certainly be a multi-module project, with the >> examples / userguide a separate module, but this would require some >> changes and a few months ago when we started doing this there was no >> consensus about it. >> >>> The original issue was: How do we run the examples? >>> Phil proposed an "ant" script, which I would have happily produced. >>> But then if "maven" can do it (with the suggested changes to the >>> "pom.xml"), it's IMO simpler to not have to run a different program. >> >> Right now, you can only run them directly in eclipse by adding a project >> for them, but we could easily do the same as NET does. > > The original request is: How do we run the examples? > To be more specific: how to run a specific example from the command line? > > I'm perfectly fine with only modifying the "pom.xml" located in > src/userguide > > Would that work? > Do you readily know what needs to be added? yes, but as sebb suggested, the easiest solution is certainly as follows: * create a commons-math-userguide.jar package using mvn package * copy this jar together with necessary dependencies (xchart, commons-math) into a directory * run java -cp . ExampleXXX parameters The whole thing could be further simplified by creating a userguide jar that already contains all dependencies in one jar. There could even be scripts in the userguide that can be executed by a user for this purpose. Thomas --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org