On Tue, 06 Jan 2015 20:41:26 +0100, Thomas Neidhart wrote:
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

Thus, copying the relevant from the "main" pom (that creates the
"tools" JAR) over to the pom in the userguide directory?

 * copy this jar together with necessary dependencies (xchart,
commons-math) into a directory
 * run java -cp . ExampleXXX parameters

That would be good enough, I guess.

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.

That's what I meant, if "maven" can be considered as a script.

Gilles


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to