RE: Build problem related to test distribution

2003-09-16 Thread Trygve Laugstøl
On Tue, 16 Sep 2003, Mark Langley wrote:

> We also desire to make test utility classes (primarily Mock Objects)
> available for use in testing of dependent projects. The approach of creating
> XYZ.jar and XYZ-tests.jar artifacts from project XYZ seems to be the best
> approach to this. Subsequent projects could then prescribe XYX-tests.jar as
> a test-dependency in their project.xml if needed.
>
> I don't think this runs counter to any of the arguments presented on the
> WhyYouCantCreateMultipleArtifactsInOneProject wiki page. Packaging an
> additional jar from the test code need not impact any of the plugins (except
> for a new test:deploy goal), and the build settings need not change. There
> is no risk of recreating the multi-project plugin within a single project.
>
> Alternate suggestion #1 of distributing test code inside a production jar is
> not a realistic solution in many (most?) environments.

Point taken :)

>
> Alternate suggestion #2 of creating a new XYZ-test-support project creates a
> circular dependency - I can't test XYZ without the support classes, and I
> can't build the support classes without XYZ.

I don't follow you here, perhaps you should try to clearify with a example

In your original mail you wanted to create a source distribution and a
test distribution. What is a test distribution?

The src/main/java directory is for the source files of a artifact and the
src/test/java is a set of tests for testing the artifact. They are not
supposed to be general classes for use outside of the artifact.

If you have a set of general test cases/util objects they really belong in
a separate project.

>
> I am curious to learn if the concept of a XYX-tests.jar artifact has been
> discussed before, and if so, why it would be rejected.
>
> Thanks,
>
> Mark
>
>
> -Original Message-
> From: Trygve Laugstøl [mailto:[EMAIL PROTECTED]
> Sent: September 16, 2003 3:35 AM
> To: Maven Users List
> Subject: Re: Build problem related to test distribution
>
>
> On Mon, 15 Sep 2003, Gil César Faria wrote:
>
> > Hello everybody!
> >
> > I have a basic project where I have some general utility classes used by
> > all other maven projects.
> > Inside this general project, i have some abstract test classes that
> > should be used within all other
> > test classes of all projects. All test classes, including those abstract
> > classes are under test directory.
> >
> > When maven builds the distribution for this general project, it only
> > includes the source classes, not
> > the test classes. But when i try to build other projects that depends
> > upon this general project, i cannot
> > compile the tests because the abstract test classes cannot be found.
> >
> > I am not sure about the best solution for this problem and would like an
> > advise from our
> > more maven experienced coleagues:
> >
> > Can i generate more than one artifact (jar) for a single project ? some
> > kind of source distribution and test distribution ...
>
> No
>
> http://wiki.codehaus.org/maven/WhyYouCantCreateMultipleArtifactsInOneProject
>
> >
> > Should i generate only a single jar with all source and test classes
> > inside it ?
>
> Don't see why not. The test class isnt a class for testing the artifact,
> rather a part of you general stuff. Bear in mind that the testcase class
> will be included if you end up building war or uberjars.
>
> >
> > Should i create a new project to hold only the abstract test classes,
> > and include it as a dependency for all other projects ?
>
> This is also a solution. Currently you can only state _dependencies_ for a
> project so it doesn't add much value, but with a later version you can
> state runtime/testtime dependencies and then it might be a good idea to
> have it as a separate project.
>
> Guess the rest of your questions are answered by now? :)
>
> >
> > Should i redefine dist:build to create a test distribution ?
> >
> > There is an automated way to tell maven that the test classes should be
> > considered as a dependency ?
> >
> > There is another way to organize my project classes to solve this problem?
> >
> > Can I define source dependencies and test dependencies separatelly?
> >
> > Any other suggestions?
> >
> > Thanks in advance!


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Build problem related to test distribution

2003-09-16 Thread Mark Langley
We also desire to make test utility classes (primarily Mock Objects)
available for use in testing of dependent projects. The approach of creating
XYZ.jar and XYZ-tests.jar artifacts from project XYZ seems to be the best
approach to this. Subsequent projects could then prescribe XYX-tests.jar as
a test-dependency in their project.xml if needed.

I don't think this runs counter to any of the arguments presented on the
WhyYouCantCreateMultipleArtifactsInOneProject wiki page. Packaging an
additional jar from the test code need not impact any of the plugins (except
for a new test:deploy goal), and the build settings need not change. There
is no risk of recreating the multi-project plugin within a single project.

Alternate suggestion #1 of distributing test code inside a production jar is
not a realistic solution in many (most?) environments.

Alternate suggestion #2 of creating a new XYZ-test-support project creates a
circular dependency - I can't test XYZ without the support classes, and I
can't build the support classes without XYZ.

I am curious to learn if the concept of a XYX-tests.jar artifact has been
discussed before, and if so, why it would be rejected.

Thanks,

Mark


-Original Message-
From: Trygve Laugstøl [mailto:[EMAIL PROTECTED]
Sent: September 16, 2003 3:35 AM
To: Maven Users List
Subject: Re: Build problem related to test distribution


On Mon, 15 Sep 2003, Gil César Faria wrote:

> Hello everybody!
>
> I have a basic project where I have some general utility classes used by
> all other maven projects.
> Inside this general project, i have some abstract test classes that
> should be used within all other
> test classes of all projects. All test classes, including those abstract
> classes are under test directory.
>
> When maven builds the distribution for this general project, it only
> includes the source classes, not
> the test classes. But when i try to build other projects that depends
> upon this general project, i cannot
> compile the tests because the abstract test classes cannot be found.
>
> I am not sure about the best solution for this problem and would like an
> advise from our
> more maven experienced coleagues:
>
> Can i generate more than one artifact (jar) for a single project ? some
> kind of source distribution and test distribution ...

No

http://wiki.codehaus.org/maven/WhyYouCantCreateMultipleArtifactsInOneProject

>
> Should i generate only a single jar with all source and test classes
> inside it ?

Don't see why not. The test class isnt a class for testing the artifact,
rather a part of you general stuff. Bear in mind that the testcase class
will be included if you end up building war or uberjars.

>
> Should i create a new project to hold only the abstract test classes,
> and include it as a dependency for all other projects ?

This is also a solution. Currently you can only state _dependencies_ for a
project so it doesn't add much value, but with a later version you can
state runtime/testtime dependencies and then it might be a good idea to
have it as a separate project.

Guess the rest of your questions are answered by now? :)

>
> Should i redefine dist:build to create a test distribution ?
>
> There is an automated way to tell maven that the test classes should be
> considered as a dependency ?
>
> There is another way to organize my project classes to solve this problem?
>
> Can I define source dependencies and test dependencies separatelly?
>
> Any other suggestions?
>
> Thanks in advance!
>
>

Trygve

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Build problem related to test distribution

2003-09-16 Thread Trygve Laugstøl
On Mon, 15 Sep 2003, Gil César Faria wrote:

> Hello everybody!
>
> I have a basic project where I have some general utility classes used by
> all other maven projects.
> Inside this general project, i have some abstract test classes that
> should be used within all other
> test classes of all projects. All test classes, including those abstract
> classes are under test directory.
>
> When maven builds the distribution for this general project, it only
> includes the source classes, not
> the test classes. But when i try to build other projects that depends
> upon this general project, i cannot
> compile the tests because the abstract test classes cannot be found.
>
> I am not sure about the best solution for this problem and would like an
> advise from our
> more maven experienced coleagues:
>
> Can i generate more than one artifact (jar) for a single project ? some
> kind of source distribution and test distribution ...

No

http://wiki.codehaus.org/maven/WhyYouCantCreateMultipleArtifactsInOneProject

>
> Should i generate only a single jar with all source and test classes
> inside it ?

Don't see why not. The test class isnt a class for testing the artifact,
rather a part of you general stuff. Bear in mind that the testcase class
will be included if you end up building war or uberjars.

>
> Should i create a new project to hold only the abstract test classes,
> and include it as a dependency for all other projects ?

This is also a solution. Currently you can only state _dependencies_ for a
project so it doesn't add much value, but with a later version you can
state runtime/testtime dependencies and then it might be a good idea to
have it as a separate project.

Guess the rest of your questions are answered by now? :)

>
> Should i redefine dist:build to create a test distribution ?
>
> There is an automated way to tell maven that the test classes should be
> considered as a dependency ?
>
> There is another way to organize my project classes to solve this problem?
>
> Can I define source dependencies and test dependencies separatelly?
>
> Any other suggestions?
>
> Thanks in advance!
>
>

Trygve

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Build problem related to test distribution

2003-09-15 Thread Gil César Faria




Hello everybody!

I have a basic project where I have some general utility classes used
by all other maven projects.
Inside this general project, i have some abstract test classes that
should be used within all other
test classes of all projects. All test classes, including those
abstract classes are under test directory.

When maven builds the distribution for this general project, it only
includes the source classes, not
the test classes. But when i try to build other projects that depends
upon this general project, i cannot
compile the tests because the abstract test classes cannot be found.

I am not sure about the best solution for this problem and would like
an advise from our
more maven experienced coleagues:

Can i generate more than one artifact (jar) for a single project ? some
kind of source distribution and test distribution ...

Should i generate only a single jar with all source and test classes
inside it ?

Should i create a new project to hold only the abstract test classes,
and include it as a dependency for all other projects ?

Should i redefine dist:build to create a test distribution ?

There is an automated way to tell maven that the test classes should be
considered as a dependency ?

There is another way to organize my project classes to solve this
problem?

Can I define source dependencies and test dependencies separatelly?

Any other suggestions?

Thanks in advance!

-- 



  

  Gil César Faria
  


  [EMAIL PROTECTED]
  
+55-19-3287-7060 r. 233 
  +55-19-9113-4694 (Novo número) 
  http://www.inmetrics.com.br
  
  
Estrada da Telebrás km 0,97 Sala 11 
13081-970 – UNICAMP 
Campinas – SP – Brasil 
caixa postal 6123 

  




<><>