Re: Help with converting existing ant build to maven is required - forking

2014-05-01 Thread Ron Wheeler

Never used optional.
What classes were missing when you used provided?
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html 
mentions that the transitive dependencies are not available if you use 
provided.
You will have to add any dependencies that your code calls that are not 
part of Red5 but are also used by Red5.


This is a good idea anyway since it documents what libraries your code 
actually uses.

You may want to use a more recent version than the one that Red5 does.

Ron


On 30/04/2014 8:56 PM, Maxim Solodovnik wrote:

Make the dependency optional seems to help :)


On Thu, May 1, 2014 at 7:43 AM, Maxim Solodovnik solomax...@gmail.comwrote:


Thanks for your time

I have started with making red5 provided but the build failed since
necessary classes were not found.
May be is there any way to provide dependency before build ...

If not I will try to create optional dependency and another one
subproject, not sure if it will work.

I believe the blog article would be better if you can extend it a little
bit and improve the formatting. Actually I can't se how it can help me :(

Thanks for the help :)


On Wed, Apr 30, 2014 at 11:22 PM, Ron Wheeler 
rwhee...@artifact-software.com wrote:


I don't have time to look at code and projects for free.
If you need consulting to move forward, there are others here that do
Maven for a business and can help you better than I can.

Have you tried making the red5 scope provided.
What does this do to your build?
Does it get eliminate the red5 classes from your jar so that it only
appears in the assembled war as a resource?

To make life simpler, remove all code from the war project and put it
into a separate project that makes a jar that the war depends on.
This will make it clearer when you need red5 to compile your code and
when you need it to build a deployable war.
It will have scope provided as a dependency in your jar project.

Do you have specific questions about my blog articles on Maven and
aggregation jars?

Ron


On 30/04/2014 11:44 AM, Maxim Solodovnik wrote:


I'm afraid I don't understand your advice :(
Sorry

maybe you have example project available?
Or maybe you can take a look at my project
parent
http://svn.apache.org/viewvc/openmeetings/trunk/
singlewebapp/pom.xml?revision=HEADview=markup
util
http://svn.apache.org/viewvc/openmeetings/trunk/
singlewebapp/openmeetings-util/pom.xml?revision=HEADview=markup
web
http://svn.apache.org/viewvc/openmeetings/trunk/
singlewebapp/openmeetings-web/pom.xml?revision=HEADview=markup

and tell me what need to be changed.

working example will help a lot :)



On Wed, Apr 30, 2014 at 11:11 AM, Ron Wheeler 
rwhee...@artifact-software.com wrote:

  So, as far as Maven is concerned, Red5 is scope provided.

You want it to reference it for compiling but should not put its classes
in the jar or war since you are going to sneak it into the package
without
Maven noticing.

Pretty standard problem. We make a lot of aggregation jars that are used
in the same way.
http://blog.artifact-software.com/tech/?p=121 describes how we handle a
similar need to produce skinny wars that use libraries in Tomcar/shared
or
tomcat/lib to avoid copies of the same code in multiple jars. Our LMS
project has over 80 Maven projects that produce a variety of jars and
wars.
Many of these share the use of large libraries such as CXF, Spring and
Apache commons that can be shared through Tomcat's classloader rather
than
duplicated in each war.

There are some other notes about Maven on our blog that you might find
interesting.

I would prefer an installer to get the shared libraries into tomcat/lib
but that is another issue.

Ron



On 29/04/2014 10:24 PM, Maxim Solodovnik wrote:

  Here is the structure:

Openmeetings Util project has compile time dependency Red5 server
Almost all other projects are dependent on Openmeetings Util and
Red5
server (compile time)

But When I'm creating war file in Openmeetings Web project I need to
remove Red5 server and all it dependencies from the WEB-INF/lib
folder
since all these jar files will be placed into tomcat/lib folder.


On Wed, Apr 30, 2014 at 4:43 AM, Ron Wheeler
rwheeler@artifact-software.
com

  wrote:

Where will the transitive dependencies come from?
There may be ways to do what you want.

Ron

On 29/04/2014 1:44 PM, Maxim Solodovnik wrote:

   Additional question:


Is it possible to exclude compile time dependency (with all
transitive
sub-dependencies)
form war libraries? (without listing libraries one by one)



On Tue, Apr 29, 2014 at 9:44 PM, Maxim Solodovnik 
solomax...@gmail.com

  wrote:

 Hello Ron,

  I'll take a look at izPack as an alternative to assembly plugin

(which
seems to be able to create artifact similar to the current being
created
by
ant)

Currently I'm trying to build all jars/war/swf files need to be
packed
(by
assembly plugin or izPack)

Here is the stripped output of my current maven build:
http://pastebin.com/XvbA9yGM
As you can 

Re: Help with converting existing ant build to maven is required - forking

2014-05-01 Thread Ron Wheeler
If there are specific suggestions or questions about the maven blog 
articles (from anyone), I would be grateful to have them.
They were written rather quickly to explain a technique that we found 
useful. People may have to read more than one of the maven articles to 
get the gist of what we do.


Some of the more experienced and knowledgeable people in this forum have 
some reservations about our approach so I would hesitate to propose it 
as a Best practice but it does address the problem that you are facing 
in a way that works in a team environment (small team)

and achieves the objects that we sought
- faster maven build (install,deploy),
- small wars (only our code),
- easy deployment (fewer shared libraries)
- shorter and simpler pom dependency specifications and
- complete management control over versions of third party libraries.

Ron

On 30/04/2014 8:43 PM, Maxim Solodovnik wrote:

Thanks for your time

I have started with making red5 provided but the build failed since
necessary classes were not found.
May be is there any way to provide dependency before build ...

If not I will try to create optional dependency and another one subproject,
not sure if it will work.

I believe the blog article would be better if you can extend it a little
bit and improve the formatting. Actually I can't se how it can help me :(

Thanks for the help :)


On Wed, Apr 30, 2014 at 11:22 PM, Ron Wheeler 
rwhee...@artifact-software.com wrote:


I don't have time to look at code and projects for free.
If you need consulting to move forward, there are others here that do
Maven for a business and can help you better than I can.

Have you tried making the red5 scope provided.
What does this do to your build?
Does it get eliminate the red5 classes from your jar so that it only
appears in the assembled war as a resource?

To make life simpler, remove all code from the war project and put it into
a separate project that makes a jar that the war depends on.
This will make it clearer when you need red5 to compile your code and when
you need it to build a deployable war.
It will have scope provided as a dependency in your jar project.

Do you have specific questions about my blog articles on Maven and
aggregation jars?

Ron


On 30/04/2014 11:44 AM, Maxim Solodovnik wrote:


I'm afraid I don't understand your advice :(
Sorry

maybe you have example project available?
Or maybe you can take a look at my project
parent
http://svn.apache.org/viewvc/openmeetings/trunk/
singlewebapp/pom.xml?revision=HEADview=markup
util
http://svn.apache.org/viewvc/openmeetings/trunk/
singlewebapp/openmeetings-util/pom.xml?revision=HEADview=markup
web
http://svn.apache.org/viewvc/openmeetings/trunk/
singlewebapp/openmeetings-web/pom.xml?revision=HEADview=markup

and tell me what need to be changed.

working example will help a lot :)



On Wed, Apr 30, 2014 at 11:11 AM, Ron Wheeler 
rwhee...@artifact-software.com wrote:

  So, as far as Maven is concerned, Red5 is scope provided.

You want it to reference it for compiling but should not put its classes
in the jar or war since you are going to sneak it into the package
without
Maven noticing.

Pretty standard problem. We make a lot of aggregation jars that are used
in the same way.
http://blog.artifact-software.com/tech/?p=121 describes how we handle a
similar need to produce skinny wars that use libraries in Tomcar/shared
or
tomcat/lib to avoid copies of the same code in multiple jars. Our LMS
project has over 80 Maven projects that produce a variety of jars and
wars.
Many of these share the use of large libraries such as CXF, Spring and
Apache commons that can be shared through Tomcat's classloader rather
than
duplicated in each war.

There are some other notes about Maven on our blog that you might find
interesting.

I would prefer an installer to get the shared libraries into tomcat/lib
but that is another issue.

Ron



On 29/04/2014 10:24 PM, Maxim Solodovnik wrote:

  Here is the structure:

Openmeetings Util project has compile time dependency Red5 server
Almost all other projects are dependent on Openmeetings Util and Red5
server (compile time)

But When I'm creating war file in Openmeetings Web project I need to
remove Red5 server and all it dependencies from the WEB-INF/lib folder
since all these jar files will be placed into tomcat/lib folder.


On Wed, Apr 30, 2014 at 4:43 AM, Ron Wheeler
rwheeler@artifact-software.
com

  wrote:

Where will the transitive dependencies come from?
There may be ways to do what you want.

Ron

On 29/04/2014 1:44 PM, Maxim Solodovnik wrote:

   Additional question:


Is it possible to exclude compile time dependency (with all transitive
sub-dependencies)
form war libraries? (without listing libraries one by one)



On Tue, Apr 29, 2014 at 9:44 PM, Maxim Solodovnik 
solomax...@gmail.com

  wrote:

 Hello Ron,

  I'll take a look at izPack as an alternative to assembly plugin

(which
seems to be able to create artifact similar to the current being
created

Re: Help with converting existing ant build to maven is required - forking

2014-04-30 Thread Maxim Solodovnik
I'm afraid I don't understand your advice :(
Sorry

maybe you have example project available?
Or maybe you can take a look at my project
parent
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/pom.xml?revision=HEADview=markup
util
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-util/pom.xml?revision=HEADview=markup
web
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/pom.xml?revision=HEADview=markup

and tell me what need to be changed.

working example will help a lot :)



On Wed, Apr 30, 2014 at 11:11 AM, Ron Wheeler 
rwhee...@artifact-software.com wrote:

 So, as far as Maven is concerned, Red5 is scope provided.
 You want it to reference it for compiling but should not put its classes
 in the jar or war since you are going to sneak it into the package without
 Maven noticing.

 Pretty standard problem. We make a lot of aggregation jars that are used
 in the same way.
 http://blog.artifact-software.com/tech/?p=121 describes how we handle a
 similar need to produce skinny wars that use libraries in Tomcar/shared or
 tomcat/lib to avoid copies of the same code in multiple jars. Our LMS
 project has over 80 Maven projects that produce a variety of jars and wars.
 Many of these share the use of large libraries such as CXF, Spring and
 Apache commons that can be shared through Tomcat's classloader rather than
 duplicated in each war.

 There are some other notes about Maven on our blog that you might find
 interesting.

 I would prefer an installer to get the shared libraries into tomcat/lib
 but that is another issue.

 Ron



 On 29/04/2014 10:24 PM, Maxim Solodovnik wrote:

 Here is the structure:

 Openmeetings Util project has compile time dependency Red5 server
 Almost all other projects are dependent on Openmeetings Util and Red5
 server (compile time)

 But When I'm creating war file in Openmeetings Web project I need to
 remove Red5 server and all it dependencies from the WEB-INF/lib folder
 since all these jar files will be placed into tomcat/lib folder.


 On Wed, Apr 30, 2014 at 4:43 AM, Ron Wheeler rwheeler@artifact-software.
 com

 wrote:
 Where will the transitive dependencies come from?
 There may be ways to do what you want.

 Ron

 On 29/04/2014 1:44 PM, Maxim Solodovnik wrote:

  Additional question:

 Is it possible to exclude compile time dependency (with all transitive
 sub-dependencies)
 form war libraries? (without listing libraries one by one)



 On Tue, Apr 29, 2014 at 9:44 PM, Maxim Solodovnik solomax...@gmail.com

 wrote:

   Hello Ron,

 I'll take a look at izPack as an alternative to assembly plugin (which
 seems to be able to create artifact similar to the current being
 created
 by
 ant)

 Currently I'm trying to build all jars/war/swf files need to be packed
 (by
 assembly plugin or izPack)

 Here is the stripped output of my current maven build:
 http://pastebin.com/XvbA9yGM
 As you can see, after normal build all projects are being forked:

  1. [INFO]
  
  2. [INFO] Forking Openmeetings Util 3.1.0-SNAPSHOT
  3. [INFO]
  
  4.


 etc.

 if I'm building single project using:
 mvn clean install -pl openmeetings-web -am
 I see no forking

 Will appreciate any help on this


 On Tue, Apr 29, 2014 at 9:25 PM, Ron Wheeler 
 rwhee...@artifact-software.com wrote:

   Can you describe the forking Maven problem in more detail.

 What does it do that you don't want and what does it not do that you
 need.

 Is there anything about your build that is different from the
 thousands
 of projects that use Maven to build Tomcat applications?

 Have you looked at using Maven to build an installer with izPack.
 This will let you use Maven to build the components and use the maven
 izPack plug-in to build a user-friendly deployment tool that lets a
 system
 admin install all of your components in the right places with the
 required permissions, initialization, etc. that may be required.

 Ron

 On 29/04/2014 10:13 AM, Maxim Solodovnik wrote:

   Thanks Russ!

 I was hoping there is a way to avoid specifying parent version in
 every
 sub-project.
 But it seems to be Maven way :)

 Maybe you know how to manage project forking? My projects are being
 build
 several times and the result of building parent project is
 unpredictable
 for whatever reason :(


 On Tue, Apr 29, 2014 at 9:04 PM, Russell Gold r...@gold-family.us
 wrote:

HI Maxim,

  Here is how I do child projects:

parent
groupIdcom.meterware.totalizer/groupId
artifactIdtotalizer/artifactId
version1.0-SNAPSHOT/version
relativePath../relativePath
/parent

artifactIdserver/artifactId


 Note that I am specifying the parent project, but neither the group
 nor
 the version for the child project - just the artifactId. The others
 are
 automatically inherited.

 Regards,
 Russ

 On Apr 26, 2014, at 3:38 AM, Maxim Solodovnik solomax...@gmail.com
 
 wrote:

Hello All,

  

Re: Help with converting existing ant build to maven is required - forking

2014-04-30 Thread Ron Wheeler

I don't have time to look at code and projects for free.
If you need consulting to move forward, there are others here that do 
Maven for a business and can help you better than I can.


Have you tried making the red5 scope provided.
What does this do to your build?
Does it get eliminate the red5 classes from your jar so that it only 
appears in the assembled war as a resource?


To make life simpler, remove all code from the war project and put it 
into a separate project that makes a jar that the war depends on.
This will make it clearer when you need red5 to compile your code and 
when you need it to build a deployable war.

It will have scope provided as a dependency in your jar project.

Do you have specific questions about my blog articles on Maven and 
aggregation jars?


Ron

On 30/04/2014 11:44 AM, Maxim Solodovnik wrote:

I'm afraid I don't understand your advice :(
Sorry

maybe you have example project available?
Or maybe you can take a look at my project
parent
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/pom.xml?revision=HEADview=markup
util
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-util/pom.xml?revision=HEADview=markup
web
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/pom.xml?revision=HEADview=markup

and tell me what need to be changed.

working example will help a lot :)



On Wed, Apr 30, 2014 at 11:11 AM, Ron Wheeler 
rwhee...@artifact-software.com wrote:


So, as far as Maven is concerned, Red5 is scope provided.
You want it to reference it for compiling but should not put its classes
in the jar or war since you are going to sneak it into the package without
Maven noticing.

Pretty standard problem. We make a lot of aggregation jars that are used
in the same way.
http://blog.artifact-software.com/tech/?p=121 describes how we handle a
similar need to produce skinny wars that use libraries in Tomcar/shared or
tomcat/lib to avoid copies of the same code in multiple jars. Our LMS
project has over 80 Maven projects that produce a variety of jars and wars.
Many of these share the use of large libraries such as CXF, Spring and
Apache commons that can be shared through Tomcat's classloader rather than
duplicated in each war.

There are some other notes about Maven on our blog that you might find
interesting.

I would prefer an installer to get the shared libraries into tomcat/lib
but that is another issue.

Ron



On 29/04/2014 10:24 PM, Maxim Solodovnik wrote:


Here is the structure:

Openmeetings Util project has compile time dependency Red5 server
Almost all other projects are dependent on Openmeetings Util and Red5
server (compile time)

But When I'm creating war file in Openmeetings Web project I need to
remove Red5 server and all it dependencies from the WEB-INF/lib folder
since all these jar files will be placed into tomcat/lib folder.


On Wed, Apr 30, 2014 at 4:43 AM, Ron Wheeler rwheeler@artifact-software.
com


wrote:
Where will the transitive dependencies come from?
There may be ways to do what you want.

Ron

On 29/04/2014 1:44 PM, Maxim Solodovnik wrote:

  Additional question:

Is it possible to exclude compile time dependency (with all transitive
sub-dependencies)
form war libraries? (without listing libraries one by one)



On Tue, Apr 29, 2014 at 9:44 PM, Maxim Solodovnik solomax...@gmail.com


wrote:


   Hello Ron,


I'll take a look at izPack as an alternative to assembly plugin (which
seems to be able to create artifact similar to the current being
created
by
ant)

Currently I'm trying to build all jars/war/swf files need to be packed
(by
assembly plugin or izPack)

Here is the stripped output of my current maven build:
http://pastebin.com/XvbA9yGM
As you can see, after normal build all projects are being forked:

  1. [INFO]
  
  2. [INFO] Forking Openmeetings Util 3.1.0-SNAPSHOT
  3. [INFO]
  
  4.


etc.

if I'm building single project using:
mvn clean install -pl openmeetings-web -am
I see no forking

Will appreciate any help on this


On Tue, Apr 29, 2014 at 9:25 PM, Ron Wheeler 
rwhee...@artifact-software.com wrote:

   Can you describe the forking Maven problem in more detail.


What does it do that you don't want and what does it not do that you
need.

Is there anything about your build that is different from the
thousands
of projects that use Maven to build Tomcat applications?

Have you looked at using Maven to build an installer with izPack.
This will let you use Maven to build the components and use the maven
izPack plug-in to build a user-friendly deployment tool that lets a
system
admin install all of your components in the right places with the
required permissions, initialization, etc. that may be required.

Ron

On 29/04/2014 10:13 AM, Maxim Solodovnik wrote:

   Thanks Russ!


I was hoping there is a way to avoid specifying parent version in
every
sub-project.
But it seems to be Maven way :)

Maybe you know how to manage project forking? My projects 

Re: Help with converting existing ant build to maven is required - forking

2014-04-30 Thread Maxim Solodovnik
Thanks for your time

I have started with making red5 provided but the build failed since
necessary classes were not found.
May be is there any way to provide dependency before build ...

If not I will try to create optional dependency and another one subproject,
not sure if it will work.

I believe the blog article would be better if you can extend it a little
bit and improve the formatting. Actually I can't se how it can help me :(

Thanks for the help :)


On Wed, Apr 30, 2014 at 11:22 PM, Ron Wheeler 
rwhee...@artifact-software.com wrote:

 I don't have time to look at code and projects for free.
 If you need consulting to move forward, there are others here that do
 Maven for a business and can help you better than I can.

 Have you tried making the red5 scope provided.
 What does this do to your build?
 Does it get eliminate the red5 classes from your jar so that it only
 appears in the assembled war as a resource?

 To make life simpler, remove all code from the war project and put it into
 a separate project that makes a jar that the war depends on.
 This will make it clearer when you need red5 to compile your code and when
 you need it to build a deployable war.
 It will have scope provided as a dependency in your jar project.

 Do you have specific questions about my blog articles on Maven and
 aggregation jars?

 Ron


 On 30/04/2014 11:44 AM, Maxim Solodovnik wrote:

 I'm afraid I don't understand your advice :(
 Sorry

 maybe you have example project available?
 Or maybe you can take a look at my project
 parent
 http://svn.apache.org/viewvc/openmeetings/trunk/
 singlewebapp/pom.xml?revision=HEADview=markup
 util
 http://svn.apache.org/viewvc/openmeetings/trunk/
 singlewebapp/openmeetings-util/pom.xml?revision=HEADview=markup
 web
 http://svn.apache.org/viewvc/openmeetings/trunk/
 singlewebapp/openmeetings-web/pom.xml?revision=HEADview=markup

 and tell me what need to be changed.

 working example will help a lot :)



 On Wed, Apr 30, 2014 at 11:11 AM, Ron Wheeler 
 rwhee...@artifact-software.com wrote:

  So, as far as Maven is concerned, Red5 is scope provided.
 You want it to reference it for compiling but should not put its classes
 in the jar or war since you are going to sneak it into the package
 without
 Maven noticing.

 Pretty standard problem. We make a lot of aggregation jars that are used
 in the same way.
 http://blog.artifact-software.com/tech/?p=121 describes how we handle a
 similar need to produce skinny wars that use libraries in Tomcar/shared
 or
 tomcat/lib to avoid copies of the same code in multiple jars. Our LMS
 project has over 80 Maven projects that produce a variety of jars and
 wars.
 Many of these share the use of large libraries such as CXF, Spring and
 Apache commons that can be shared through Tomcat's classloader rather
 than
 duplicated in each war.

 There are some other notes about Maven on our blog that you might find
 interesting.

 I would prefer an installer to get the shared libraries into tomcat/lib
 but that is another issue.

 Ron



 On 29/04/2014 10:24 PM, Maxim Solodovnik wrote:

  Here is the structure:

 Openmeetings Util project has compile time dependency Red5 server
 Almost all other projects are dependent on Openmeetings Util and Red5
 server (compile time)

 But When I'm creating war file in Openmeetings Web project I need to
 remove Red5 server and all it dependencies from the WEB-INF/lib folder
 since all these jar files will be placed into tomcat/lib folder.


 On Wed, Apr 30, 2014 at 4:43 AM, Ron Wheeler
 rwheeler@artifact-software.
 com

  wrote:
 Where will the transitive dependencies come from?
 There may be ways to do what you want.

 Ron

 On 29/04/2014 1:44 PM, Maxim Solodovnik wrote:

   Additional question:

 Is it possible to exclude compile time dependency (with all transitive
 sub-dependencies)
 form war libraries? (without listing libraries one by one)



 On Tue, Apr 29, 2014 at 9:44 PM, Maxim Solodovnik 
 solomax...@gmail.com

  wrote:

 Hello Ron,

  I'll take a look at izPack as an alternative to assembly plugin
 (which
 seems to be able to create artifact similar to the current being
 created
 by
 ant)

 Currently I'm trying to build all jars/war/swf files need to be
 packed
 (by
 assembly plugin or izPack)

 Here is the stripped output of my current maven build:
 http://pastebin.com/XvbA9yGM
 As you can see, after normal build all projects are being forked:

   1. [INFO]
   
   2. [INFO] Forking Openmeetings Util 3.1.0-SNAPSHOT
   3. [INFO]
   
   4.


 etc.

 if I'm building single project using:
 mvn clean install -pl openmeetings-web -am
 I see no forking

 Will appreciate any help on this


 On Tue, Apr 29, 2014 at 9:25 PM, Ron Wheeler 
 rwhee...@artifact-software.com wrote:

Can you describe the forking Maven problem in more detail.

  What does it do that you don't want and what does it not do that you
 need.

 Is there anything about your build that is different from the
 

Re: Help with converting existing ant build to maven is required - forking

2014-04-30 Thread Maxim Solodovnik
Make the dependency optional seems to help :)


On Thu, May 1, 2014 at 7:43 AM, Maxim Solodovnik solomax...@gmail.comwrote:

 Thanks for your time

 I have started with making red5 provided but the build failed since
 necessary classes were not found.
 May be is there any way to provide dependency before build ...

 If not I will try to create optional dependency and another one
 subproject, not sure if it will work.

 I believe the blog article would be better if you can extend it a little
 bit and improve the formatting. Actually I can't se how it can help me :(

 Thanks for the help :)


 On Wed, Apr 30, 2014 at 11:22 PM, Ron Wheeler 
 rwhee...@artifact-software.com wrote:

 I don't have time to look at code and projects for free.
 If you need consulting to move forward, there are others here that do
 Maven for a business and can help you better than I can.

 Have you tried making the red5 scope provided.
 What does this do to your build?
 Does it get eliminate the red5 classes from your jar so that it only
 appears in the assembled war as a resource?

 To make life simpler, remove all code from the war project and put it
 into a separate project that makes a jar that the war depends on.
 This will make it clearer when you need red5 to compile your code and
 when you need it to build a deployable war.
 It will have scope provided as a dependency in your jar project.

 Do you have specific questions about my blog articles on Maven and
 aggregation jars?

 Ron


 On 30/04/2014 11:44 AM, Maxim Solodovnik wrote:

 I'm afraid I don't understand your advice :(
 Sorry

 maybe you have example project available?
 Or maybe you can take a look at my project
 parent
 http://svn.apache.org/viewvc/openmeetings/trunk/
 singlewebapp/pom.xml?revision=HEADview=markup
 util
 http://svn.apache.org/viewvc/openmeetings/trunk/
 singlewebapp/openmeetings-util/pom.xml?revision=HEADview=markup
 web
 http://svn.apache.org/viewvc/openmeetings/trunk/
 singlewebapp/openmeetings-web/pom.xml?revision=HEADview=markup

 and tell me what need to be changed.

 working example will help a lot :)



 On Wed, Apr 30, 2014 at 11:11 AM, Ron Wheeler 
 rwhee...@artifact-software.com wrote:

  So, as far as Maven is concerned, Red5 is scope provided.
 You want it to reference it for compiling but should not put its classes
 in the jar or war since you are going to sneak it into the package
 without
 Maven noticing.

 Pretty standard problem. We make a lot of aggregation jars that are used
 in the same way.
 http://blog.artifact-software.com/tech/?p=121 describes how we handle a
 similar need to produce skinny wars that use libraries in Tomcar/shared
 or
 tomcat/lib to avoid copies of the same code in multiple jars. Our LMS
 project has over 80 Maven projects that produce a variety of jars and
 wars.
 Many of these share the use of large libraries such as CXF, Spring and
 Apache commons that can be shared through Tomcat's classloader rather
 than
 duplicated in each war.

 There are some other notes about Maven on our blog that you might find
 interesting.

 I would prefer an installer to get the shared libraries into tomcat/lib
 but that is another issue.

 Ron



 On 29/04/2014 10:24 PM, Maxim Solodovnik wrote:

  Here is the structure:

 Openmeetings Util project has compile time dependency Red5 server
 Almost all other projects are dependent on Openmeetings Util and
 Red5
 server (compile time)

 But When I'm creating war file in Openmeetings Web project I need to
 remove Red5 server and all it dependencies from the WEB-INF/lib
 folder
 since all these jar files will be placed into tomcat/lib folder.


 On Wed, Apr 30, 2014 at 4:43 AM, Ron Wheeler
 rwheeler@artifact-software.
 com

  wrote:
 Where will the transitive dependencies come from?
 There may be ways to do what you want.

 Ron

 On 29/04/2014 1:44 PM, Maxim Solodovnik wrote:

   Additional question:

 Is it possible to exclude compile time dependency (with all
 transitive
 sub-dependencies)
 form war libraries? (without listing libraries one by one)



 On Tue, Apr 29, 2014 at 9:44 PM, Maxim Solodovnik 
 solomax...@gmail.com

  wrote:

 Hello Ron,

  I'll take a look at izPack as an alternative to assembly plugin
 (which
 seems to be able to create artifact similar to the current being
 created
 by
 ant)

 Currently I'm trying to build all jars/war/swf files need to be
 packed
 (by
 assembly plugin or izPack)

 Here is the stripped output of my current maven build:
 http://pastebin.com/XvbA9yGM
 As you can see, after normal build all projects are being forked:

   1. [INFO]
   
   2. [INFO] Forking Openmeetings Util 3.1.0-SNAPSHOT
   3. [INFO]
   
   4.


 etc.

 if I'm building single project using:
 mvn clean install -pl openmeetings-web -am
 I see no forking

 Will appreciate any help on this


 On Tue, Apr 29, 2014 at 9:25 PM, Ron Wheeler 
 rwhee...@artifact-software.com wrote:

Can you describe the forking Maven problem in more detail.

  What 

Re: Help with converting existing ant build to maven is required - forking

2014-04-29 Thread Ron Wheeler

Can you describe the forking Maven problem in more detail.
What does it do that you don't want and what does it not do that you need.

Is there anything about your build that is different from the thousands 
of projects that use Maven to build Tomcat applications?


Have you looked at using Maven to build an installer with izPack.
This will let you use Maven to build the components and use the maven 
izPack plug-in to build a user-friendly deployment tool that lets a 
system admin install all of your components in the right places with 
the required permissions, initialization, etc. that may be required.


Ron

On 29/04/2014 10:13 AM, Maxim Solodovnik wrote:

Thanks Russ!

I was hoping there is a way to avoid specifying parent version in every
sub-project.
But it seems to be Maven way :)

Maybe you know how to manage project forking? My projects are being build
several times and the result of building parent project is unpredictable
for whatever reason :(


On Tue, Apr 29, 2014 at 9:04 PM, Russell Gold r...@gold-family.us wrote:


HI Maxim,

Here is how I do child projects:

 parent
 groupIdcom.meterware.totalizer/groupId
 artifactIdtotalizer/artifactId
 version1.0-SNAPSHOT/version
 relativePath../relativePath
 /parent

 artifactIdserver/artifactId


Note that I am specifying the parent project, but neither the group nor
the version for the child project - just the artifactId. The others are
automatically inherited.

Regards,
Russ

On Apr 26, 2014, at 3:38 AM, Maxim Solodovnik solomax...@gmail.com
wrote:


Hello All,

sorry for the keeping silence too long :)
finally I was able to start migration and more questions are come up: :)

1) Is there any way to use parent project version in child projects? I
currently use variable for this [1] but it results too many warnings

2) I have lots of Forking PROJECT VERSION and same tasks are performed
again and again :( is there any way to disable forking?

3) somehow task in phase process-test-resources is executed even if
-DskipTests=true is specified:
mvn eclipse:eclipse -DskipTests=true
Or in case of eclipse:eclipse it is expected behavior?

4) While running mvn site I get lots of
Caused by: java.lang.ClassNotFoundException:
org.sonatype.aether.version.VersionConstraint
at


org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)

I have tried many solutions from the google none of them are working :(


solomax@solomax-laptop:~/work/openmeetings/trunk/singlewebapp$ mvn

-version

Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9;
2014-02-15T00:37:52+07:00)
Maven home: /opt/maven
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: /opt/jdk1.7.0_51/jre
Default locale: en_US, platform encoding: UTF-8
OS name: linux, version: 3.13.0-24-generic, arch: amd64, family:
unix


Thanks in advance :)



On Thu, Mar 13, 2014 at 10:46 PM, Ron Wheeler 
rwhee...@artifact-software.com wrote:


Good approach.
Ron

On 13/03/2014 9:58 AM, Baptiste Mathus wrote:


Well, though I agree Maven isn't designed to be an end-user tool,

using it

to build the end-user distribution is actually totally supported.
IMO, if what you're trying to do is building your product from some
sources
and binaries, then Maven can obviously do it.

If what you need for production is an installer, then creating an
installer
using izpack is indeed a good idea, but you would just build that
installer
during your Maven build (http://izpack.codehaus.org/
izpack-maven-plugin/e.g.).

You seem to actually have two kind of phases:
* the first one, typically compile and package your sources using

binaries

coming from a repo manager (be it a corporately managed one, or

directly

from Central)
* the second one, creating the end-user distribution, is typically done
with Maven using maven-assembly-plugin.

Don't hesitate to ask questions, because I don't think we've gone so

far

until now to understand your building steps.

Cheers


2014-03-13 14:24 GMT+01:00 Maxim Solodovnik solomax...@gmail.com:

Thanks Ron,

I'll take a look at it, but I'm afraid distribute application in
partially
compiled state is not an option.
Currently it works out of the box and this is the requirement.

Will try to study maven and postpone the migration for now


On Thu, Mar 13, 2014 at 8:18 PM, Ron Wheeler 
rwhee...@artifact-software.com


wrote:
IMHO, Maven is a software build tool and trying to make it a
installation
tool is much too hard.

You might find that your life will be a lot easier with IzPack as the


tool


to create your installer.
It will allow you to package up your maven artifacts with other
resources
into different OS-specific installers that can be distributed easily.
It supports install time execution of your procedures so that you can
start RED-5 or execute the flex processes required to build and

install

the


Flash assets.


Ron



On 13/03/2014 4:51 AM, Maxim Solodovnik wrote:

Hello Baptiste,

Thanks for your 

Re: Help with converting existing ant build to maven is required - forking

2014-04-29 Thread Maxim Solodovnik
Hello Ron,

I'll take a look at izPack as an alternative to assembly plugin (which
seems to be able to create artifact similar to the current being created by
ant)

Currently I'm trying to build all jars/war/swf files need to be packed (by
assembly plugin or izPack)

Here is the stripped output of my current maven build:
http://pastebin.com/XvbA9yGM
As you can see, after normal build all projects are being forked:

   1. [INFO]
   
   2. [INFO] Forking Openmeetings Util 3.1.0-SNAPSHOT
   3. [INFO]
   
   4.

etc.

if I'm building single project using:
mvn clean install -pl openmeetings-web -am
I see no forking

Will appreciate any help on this


On Tue, Apr 29, 2014 at 9:25 PM, Ron Wheeler rwhee...@artifact-software.com
 wrote:

 Can you describe the forking Maven problem in more detail.
 What does it do that you don't want and what does it not do that you need.

 Is there anything about your build that is different from the thousands of
 projects that use Maven to build Tomcat applications?

 Have you looked at using Maven to build an installer with izPack.
 This will let you use Maven to build the components and use the maven
 izPack plug-in to build a user-friendly deployment tool that lets a system
 admin install all of your components in the right places with the
 required permissions, initialization, etc. that may be required.

 Ron

 On 29/04/2014 10:13 AM, Maxim Solodovnik wrote:

 Thanks Russ!

 I was hoping there is a way to avoid specifying parent version in every
 sub-project.
 But it seems to be Maven way :)

 Maybe you know how to manage project forking? My projects are being build
 several times and the result of building parent project is unpredictable
 for whatever reason :(


 On Tue, Apr 29, 2014 at 9:04 PM, Russell Gold r...@gold-family.us
 wrote:

  HI Maxim,

 Here is how I do child projects:

  parent
  groupIdcom.meterware.totalizer/groupId
  artifactIdtotalizer/artifactId
  version1.0-SNAPSHOT/version
  relativePath../relativePath
  /parent

  artifactIdserver/artifactId


 Note that I am specifying the parent project, but neither the group nor
 the version for the child project - just the artifactId. The others are
 automatically inherited.

 Regards,
 Russ

 On Apr 26, 2014, at 3:38 AM, Maxim Solodovnik solomax...@gmail.com
 wrote:

  Hello All,

 sorry for the keeping silence too long :)
 finally I was able to start migration and more questions are come up: :)

 1) Is there any way to use parent project version in child projects? I
 currently use variable for this [1] but it results too many warnings

 2) I have lots of Forking PROJECT VERSION and same tasks are performed
 again and again :( is there any way to disable forking?

 3) somehow task in phase process-test-resources is executed even if
 -DskipTests=true is specified:
 mvn eclipse:eclipse -DskipTests=true
 Or in case of eclipse:eclipse it is expected behavior?

 4) While running mvn site I get lots of
 Caused by: java.lang.ClassNotFoundException:
 org.sonatype.aether.version.VersionConstraint
 at

  org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(
 SelfFirstStrategy.java:50)

 I have tried many solutions from the google none of them are working :(


 solomax@solomax-laptop:~/work/openmeetings/trunk/singlewebapp$ mvn

 -version

 Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9;
 2014-02-15T00:37:52+07:00)
 Maven home: /opt/maven
 Java version: 1.7.0_51, vendor: Oracle Corporation
 Java home: /opt/jdk1.7.0_51/jre
 Default locale: en_US, platform encoding: UTF-8
 OS name: linux, version: 3.13.0-24-generic, arch: amd64, family:
 unix


 Thanks in advance :)



 On Thu, Mar 13, 2014 at 10:46 PM, Ron Wheeler 
 rwhee...@artifact-software.com wrote:

  Good approach.
 Ron

 On 13/03/2014 9:58 AM, Baptiste Mathus wrote:

  Well, though I agree Maven isn't designed to be an end-user tool,

 using it

 to build the end-user distribution is actually totally supported.
 IMO, if what you're trying to do is building your product from some
 sources
 and binaries, then Maven can obviously do it.

 If what you need for production is an installer, then creating an
 installer
 using izpack is indeed a good idea, but you would just build that
 installer
 during your Maven build (http://izpack.codehaus.org/
 izpack-maven-plugin/e.g.).

 You seem to actually have two kind of phases:
 * the first one, typically compile and package your sources using

 binaries

 coming from a repo manager (be it a corporately managed one, or

 directly

 from Central)
 * the second one, creating the end-user distribution, is typically
 done
 with Maven using maven-assembly-plugin.

 Don't hesitate to ask questions, because I don't think we've gone so

 far

 until now to understand your building steps.

 Cheers


 2014-03-13 14:24 GMT+01:00 Maxim Solodovnik solomax...@gmail.com:

 Thanks Ron,

 I'll take a look at it, but I'm afraid distribute application in
 partially
 compiled 

Re: Help with converting existing ant build to maven is required - forking

2014-04-29 Thread Maxim Solodovnik
Additional question:

Is it possible to exclude compile time dependency (with all transitive
sub-dependencies)
form war libraries? (without listing libraries one by one)



On Tue, Apr 29, 2014 at 9:44 PM, Maxim Solodovnik solomax...@gmail.comwrote:

 Hello Ron,

 I'll take a look at izPack as an alternative to assembly plugin (which
 seems to be able to create artifact similar to the current being created by
 ant)

 Currently I'm trying to build all jars/war/swf files need to be packed (by
 assembly plugin or izPack)

 Here is the stripped output of my current maven build:
 http://pastebin.com/XvbA9yGM
 As you can see, after normal build all projects are being forked:

1. [INFO]

2. [INFO] Forking Openmeetings Util 3.1.0-SNAPSHOT
3. [INFO]

4.

 etc.

 if I'm building single project using:
 mvn clean install -pl openmeetings-web -am
 I see no forking

 Will appreciate any help on this


 On Tue, Apr 29, 2014 at 9:25 PM, Ron Wheeler 
 rwhee...@artifact-software.com wrote:

 Can you describe the forking Maven problem in more detail.
 What does it do that you don't want and what does it not do that you need.

 Is there anything about your build that is different from the thousands
 of projects that use Maven to build Tomcat applications?

 Have you looked at using Maven to build an installer with izPack.
 This will let you use Maven to build the components and use the maven
 izPack plug-in to build a user-friendly deployment tool that lets a system
 admin install all of your components in the right places with the
 required permissions, initialization, etc. that may be required.

 Ron

 On 29/04/2014 10:13 AM, Maxim Solodovnik wrote:

 Thanks Russ!

 I was hoping there is a way to avoid specifying parent version in every
 sub-project.
 But it seems to be Maven way :)

 Maybe you know how to manage project forking? My projects are being build
 several times and the result of building parent project is unpredictable
 for whatever reason :(


 On Tue, Apr 29, 2014 at 9:04 PM, Russell Gold r...@gold-family.us
 wrote:

  HI Maxim,

 Here is how I do child projects:

  parent
  groupIdcom.meterware.totalizer/groupId
  artifactIdtotalizer/artifactId
  version1.0-SNAPSHOT/version
  relativePath../relativePath
  /parent

  artifactIdserver/artifactId


 Note that I am specifying the parent project, but neither the group nor
 the version for the child project - just the artifactId. The others are
 automatically inherited.

 Regards,
 Russ

 On Apr 26, 2014, at 3:38 AM, Maxim Solodovnik solomax...@gmail.com
 wrote:

  Hello All,

 sorry for the keeping silence too long :)
 finally I was able to start migration and more questions are come up:
 :)

 1) Is there any way to use parent project version in child projects? I
 currently use variable for this [1] but it results too many warnings

 2) I have lots of Forking PROJECT VERSION and same tasks are
 performed
 again and again :( is there any way to disable forking?

 3) somehow task in phase process-test-resources is executed even if
 -DskipTests=true is specified:
 mvn eclipse:eclipse -DskipTests=true
 Or in case of eclipse:eclipse it is expected behavior?

 4) While running mvn site I get lots of
 Caused by: java.lang.ClassNotFoundException:
 org.sonatype.aether.version.VersionConstraint
 at

  org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(
 SelfFirstStrategy.java:50)

 I have tried many solutions from the google none of them are working :(


 solomax@solomax-laptop:~/work/openmeetings/trunk/singlewebapp$ mvn

 -version

 Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9;
 2014-02-15T00:37:52+07:00)
 Maven home: /opt/maven
 Java version: 1.7.0_51, vendor: Oracle Corporation
 Java home: /opt/jdk1.7.0_51/jre
 Default locale: en_US, platform encoding: UTF-8
 OS name: linux, version: 3.13.0-24-generic, arch: amd64, family:
 unix


 Thanks in advance :)



 On Thu, Mar 13, 2014 at 10:46 PM, Ron Wheeler 
 rwhee...@artifact-software.com wrote:

  Good approach.
 Ron

 On 13/03/2014 9:58 AM, Baptiste Mathus wrote:

  Well, though I agree Maven isn't designed to be an end-user tool,

 using it

 to build the end-user distribution is actually totally supported.
 IMO, if what you're trying to do is building your product from some
 sources
 and binaries, then Maven can obviously do it.

 If what you need for production is an installer, then creating an
 installer
 using izpack is indeed a good idea, but you would just build that
 installer
 during your Maven build (http://izpack.codehaus.org/
 izpack-maven-plugin/e.g.).

 You seem to actually have two kind of phases:
 * the first one, typically compile and package your sources using

 binaries

 coming from a repo manager (be it a corporately managed one, or

 directly

 from Central)
 * the second one, creating the end-user distribution, is typically
 done
 with Maven using maven-assembly-plugin.

 Don't hesitate to ask 

Re: Help with converting existing ant build to maven is required - forking

2014-04-29 Thread Ron Wheeler

Where will the transitive dependencies come from?
There may be ways to do what you want.

Ron
On 29/04/2014 1:44 PM, Maxim Solodovnik wrote:

Additional question:

Is it possible to exclude compile time dependency (with all transitive
sub-dependencies)
form war libraries? (without listing libraries one by one)



On Tue, Apr 29, 2014 at 9:44 PM, Maxim Solodovnik solomax...@gmail.comwrote:


Hello Ron,

I'll take a look at izPack as an alternative to assembly plugin (which
seems to be able to create artifact similar to the current being created by
ant)

Currently I'm trying to build all jars/war/swf files need to be packed (by
assembly plugin or izPack)

Here is the stripped output of my current maven build:
http://pastebin.com/XvbA9yGM
As you can see, after normal build all projects are being forked:

1. [INFO]

2. [INFO] Forking Openmeetings Util 3.1.0-SNAPSHOT
3. [INFO]

4.

etc.

if I'm building single project using:
mvn clean install -pl openmeetings-web -am
I see no forking

Will appreciate any help on this


On Tue, Apr 29, 2014 at 9:25 PM, Ron Wheeler 
rwhee...@artifact-software.com wrote:


Can you describe the forking Maven problem in more detail.
What does it do that you don't want and what does it not do that you need.

Is there anything about your build that is different from the thousands
of projects that use Maven to build Tomcat applications?

Have you looked at using Maven to build an installer with izPack.
This will let you use Maven to build the components and use the maven
izPack plug-in to build a user-friendly deployment tool that lets a system
admin install all of your components in the right places with the
required permissions, initialization, etc. that may be required.

Ron

On 29/04/2014 10:13 AM, Maxim Solodovnik wrote:


Thanks Russ!

I was hoping there is a way to avoid specifying parent version in every
sub-project.
But it seems to be Maven way :)

Maybe you know how to manage project forking? My projects are being build
several times and the result of building parent project is unpredictable
for whatever reason :(


On Tue, Apr 29, 2014 at 9:04 PM, Russell Gold r...@gold-family.us
wrote:

  HI Maxim,

Here is how I do child projects:

  parent
  groupIdcom.meterware.totalizer/groupId
  artifactIdtotalizer/artifactId
  version1.0-SNAPSHOT/version
  relativePath../relativePath
  /parent

  artifactIdserver/artifactId


Note that I am specifying the parent project, but neither the group nor
the version for the child project - just the artifactId. The others are
automatically inherited.

Regards,
Russ

On Apr 26, 2014, at 3:38 AM, Maxim Solodovnik solomax...@gmail.com
wrote:

  Hello All,

sorry for the keeping silence too long :)
finally I was able to start migration and more questions are come up:
:)

1) Is there any way to use parent project version in child projects? I
currently use variable for this [1] but it results too many warnings

2) I have lots of Forking PROJECT VERSION and same tasks are
performed
again and again :( is there any way to disable forking?

3) somehow task in phase process-test-resources is executed even if
-DskipTests=true is specified:
mvn eclipse:eclipse -DskipTests=true
Or in case of eclipse:eclipse it is expected behavior?

4) While running mvn site I get lots of
Caused by: java.lang.ClassNotFoundException:
org.sonatype.aether.version.VersionConstraint
at

  org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(

SelfFirstStrategy.java:50)


I have tried many solutions from the google none of them are working :(


solomax@solomax-laptop:~/work/openmeetings/trunk/singlewebapp$ mvn


-version


Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9;
2014-02-15T00:37:52+07:00)
Maven home: /opt/maven
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: /opt/jdk1.7.0_51/jre
Default locale: en_US, platform encoding: UTF-8
OS name: linux, version: 3.13.0-24-generic, arch: amd64, family:
unix


Thanks in advance :)



On Thu, Mar 13, 2014 at 10:46 PM, Ron Wheeler 
rwhee...@artifact-software.com wrote:

  Good approach.

Ron

On 13/03/2014 9:58 AM, Baptiste Mathus wrote:

  Well, though I agree Maven isn't designed to be an end-user tool,
using it

to build the end-user distribution is actually totally supported.

IMO, if what you're trying to do is building your product from some
sources
and binaries, then Maven can obviously do it.

If what you need for production is an installer, then creating an
installer
using izpack is indeed a good idea, but you would just build that
installer
during your Maven build (http://izpack.codehaus.org/
izpack-maven-plugin/e.g.).

You seem to actually have two kind of phases:
* the first one, typically compile and package your sources using


binaries

coming from a repo manager (be it a corporately managed one, or

directly

from Central)

* the second one, creating the end-user distribution, is typically
done
with Maven 

Re: Help with converting existing ant build to maven is required - forking

2014-04-29 Thread Maxim Solodovnik
Here is the structure:

Openmeetings Util project has compile time dependency Red5 server
Almost all other projects are dependent on Openmeetings Util and Red5
server (compile time)

But When I'm creating war file in Openmeetings Web project I need to
remove Red5 server and all it dependencies from the WEB-INF/lib folder
since all these jar files will be placed into tomcat/lib folder.


On Wed, Apr 30, 2014 at 4:43 AM, Ron Wheeler rwhee...@artifact-software.com
 wrote:

 Where will the transitive dependencies come from?
 There may be ways to do what you want.

 Ron

 On 29/04/2014 1:44 PM, Maxim Solodovnik wrote:

 Additional question:

 Is it possible to exclude compile time dependency (with all transitive
 sub-dependencies)
 form war libraries? (without listing libraries one by one)



 On Tue, Apr 29, 2014 at 9:44 PM, Maxim Solodovnik solomax...@gmail.com
 wrote:

  Hello Ron,

 I'll take a look at izPack as an alternative to assembly plugin (which
 seems to be able to create artifact similar to the current being created
 by
 ant)

 Currently I'm trying to build all jars/war/swf files need to be packed
 (by
 assembly plugin or izPack)

 Here is the stripped output of my current maven build:
 http://pastebin.com/XvbA9yGM
 As you can see, after normal build all projects are being forked:

 1. [INFO]
 
 
 2. [INFO] Forking Openmeetings Util 3.1.0-SNAPSHOT
 3. [INFO]
 
 
 4.


 etc.

 if I'm building single project using:
 mvn clean install -pl openmeetings-web -am
 I see no forking

 Will appreciate any help on this


 On Tue, Apr 29, 2014 at 9:25 PM, Ron Wheeler 
 rwhee...@artifact-software.com wrote:

  Can you describe the forking Maven problem in more detail.
 What does it do that you don't want and what does it not do that you
 need.

 Is there anything about your build that is different from the thousands
 of projects that use Maven to build Tomcat applications?

 Have you looked at using Maven to build an installer with izPack.
 This will let you use Maven to build the components and use the maven
 izPack plug-in to build a user-friendly deployment tool that lets a
 system
 admin install all of your components in the right places with the
 required permissions, initialization, etc. that may be required.

 Ron

 On 29/04/2014 10:13 AM, Maxim Solodovnik wrote:

  Thanks Russ!

 I was hoping there is a way to avoid specifying parent version in every
 sub-project.
 But it seems to be Maven way :)

 Maybe you know how to manage project forking? My projects are being
 build
 several times and the result of building parent project is
 unpredictable
 for whatever reason :(


 On Tue, Apr 29, 2014 at 9:04 PM, Russell Gold r...@gold-family.us
 wrote:

   HI Maxim,

 Here is how I do child projects:

   parent
   groupIdcom.meterware.totalizer/groupId
   artifactIdtotalizer/artifactId
   version1.0-SNAPSHOT/version
   relativePath../relativePath
   /parent

   artifactIdserver/artifactId


 Note that I am specifying the parent project, but neither the group
 nor
 the version for the child project - just the artifactId. The others
 are
 automatically inherited.

 Regards,
 Russ

 On Apr 26, 2014, at 3:38 AM, Maxim Solodovnik solomax...@gmail.com
 wrote:

   Hello All,

 sorry for the keeping silence too long :)
 finally I was able to start migration and more questions are come up:
 :)

 1) Is there any way to use parent project version in child projects?
 I
 currently use variable for this [1] but it results too many warnings

 2) I have lots of Forking PROJECT VERSION and same tasks are
 performed
 again and again :( is there any way to disable forking?

 3) somehow task in phase process-test-resources is executed even if
 -DskipTests=true is specified:
 mvn eclipse:eclipse -DskipTests=true
 Or in case of eclipse:eclipse it is expected behavior?

 4) While running mvn site I get lots of
 Caused by: java.lang.ClassNotFoundException:
 org.sonatype.aether.version.VersionConstraint
 at

   org.codehaus.plexus.classworlds.strategy.
 SelfFirstStrategy.loadClass(

 SelfFirstStrategy.java:50)

  I have tried many solutions from the google none of them are working
 :(


 solomax@solomax-laptop:~/work/openmeetings/trunk/singlewebapp$ mvn

  -version

  Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9;
 2014-02-15T00:37:52+07:00)
 Maven home: /opt/maven
 Java version: 1.7.0_51, vendor: Oracle Corporation
 Java home: /opt/jdk1.7.0_51/jre
 Default locale: en_US, platform encoding: UTF-8
 OS name: linux, version: 3.13.0-24-generic, arch: amd64,
 family:
 unix


 Thanks in advance :)



 On Thu, Mar 13, 2014 at 10:46 PM, Ron Wheeler 
 rwhee...@artifact-software.com wrote:

   Good approach.

 Ron

 On 13/03/2014 9:58 AM, Baptiste Mathus wrote:

   Well, though I agree Maven isn't designed to be an end-user tool,
 using it

 to build the end-user distribution is actually totally supported.

 IMO, if what you're trying to do is building your 

Re: Help with converting existing ant build to maven is required - forking

2014-04-29 Thread Ron Wheeler

So, as far as Maven is concerned, Red5 is scope provided.
You want it to reference it for compiling but should not put its classes 
in the jar or war since you are going to sneak it into the package 
without Maven noticing.


Pretty standard problem. We make a lot of aggregation jars that are used 
in the same way.
http://blog.artifact-software.com/tech/?p=121 describes how we handle a 
similar need to produce skinny wars that use libraries in Tomcar/shared 
or tomcat/lib to avoid copies of the same code in multiple jars. Our LMS 
project has over 80 Maven projects that produce a variety of jars and 
wars. Many of these share the use of large libraries such as CXF, Spring 
and Apache commons that can be shared through Tomcat's classloader 
rather than duplicated in each war.


There are some other notes about Maven on our blog that you might find 
interesting.


I would prefer an installer to get the shared libraries into tomcat/lib 
but that is another issue.


Ron


On 29/04/2014 10:24 PM, Maxim Solodovnik wrote:

Here is the structure:

Openmeetings Util project has compile time dependency Red5 server
Almost all other projects are dependent on Openmeetings Util and Red5
server (compile time)

But When I'm creating war file in Openmeetings Web project I need to
remove Red5 server and all it dependencies from the WEB-INF/lib folder
since all these jar files will be placed into tomcat/lib folder.


On Wed, Apr 30, 2014 at 4:43 AM, Ron Wheeler rwhee...@artifact-software.com

wrote:
Where will the transitive dependencies come from?
There may be ways to do what you want.

Ron

On 29/04/2014 1:44 PM, Maxim Solodovnik wrote:


Additional question:

Is it possible to exclude compile time dependency (with all transitive
sub-dependencies)
form war libraries? (without listing libraries one by one)



On Tue, Apr 29, 2014 at 9:44 PM, Maxim Solodovnik solomax...@gmail.com

wrote:

  Hello Ron,

I'll take a look at izPack as an alternative to assembly plugin (which
seems to be able to create artifact similar to the current being created
by
ant)

Currently I'm trying to build all jars/war/swf files need to be packed
(by
assembly plugin or izPack)

Here is the stripped output of my current maven build:
http://pastebin.com/XvbA9yGM
As you can see, after normal build all projects are being forked:

 1. [INFO]
 
 2. [INFO] Forking Openmeetings Util 3.1.0-SNAPSHOT
 3. [INFO]
 
 4.


etc.

if I'm building single project using:
mvn clean install -pl openmeetings-web -am
I see no forking

Will appreciate any help on this


On Tue, Apr 29, 2014 at 9:25 PM, Ron Wheeler 
rwhee...@artifact-software.com wrote:

  Can you describe the forking Maven problem in more detail.

What does it do that you don't want and what does it not do that you
need.

Is there anything about your build that is different from the thousands
of projects that use Maven to build Tomcat applications?

Have you looked at using Maven to build an installer with izPack.
This will let you use Maven to build the components and use the maven
izPack plug-in to build a user-friendly deployment tool that lets a
system
admin install all of your components in the right places with the
required permissions, initialization, etc. that may be required.

Ron

On 29/04/2014 10:13 AM, Maxim Solodovnik wrote:

  Thanks Russ!

I was hoping there is a way to avoid specifying parent version in every
sub-project.
But it seems to be Maven way :)

Maybe you know how to manage project forking? My projects are being
build
several times and the result of building parent project is
unpredictable
for whatever reason :(


On Tue, Apr 29, 2014 at 9:04 PM, Russell Gold r...@gold-family.us
wrote:

   HI Maxim,


Here is how I do child projects:

   parent
   groupIdcom.meterware.totalizer/groupId
   artifactIdtotalizer/artifactId
   version1.0-SNAPSHOT/version
   relativePath../relativePath
   /parent

   artifactIdserver/artifactId


Note that I am specifying the parent project, but neither the group
nor
the version for the child project - just the artifactId. The others
are
automatically inherited.

Regards,
Russ

On Apr 26, 2014, at 3:38 AM, Maxim Solodovnik solomax...@gmail.com
wrote:

   Hello All,


sorry for the keeping silence too long :)
finally I was able to start migration and more questions are come up:
:)

1) Is there any way to use parent project version in child projects?
I
currently use variable for this [1] but it results too many warnings

2) I have lots of Forking PROJECT VERSION and same tasks are
performed
again and again :( is there any way to disable forking?

3) somehow task in phase process-test-resources is executed even if
-DskipTests=true is specified:
mvn eclipse:eclipse -DskipTests=true
Or in case of eclipse:eclipse it is expected behavior?

4) While running mvn site I get lots of
Caused by: java.lang.ClassNotFoundException:
org.sonatype.aether.version.VersionConstraint
at

   

Re: Help with converting existing ant build to maven is required - forking

2014-04-29 Thread Barrie Treloar
On 30 April 2014 11:54, Maxim Solodovnik solomax...@gmail.com wrote:

 Here is the structure:

 Openmeetings Util project has compile time dependency Red5 server
 Almost all other projects are dependent on Openmeetings Util and Red5
 server (compile time)

 But When I'm creating war file in Openmeetings Web project I need to
 remove Red5 server and all it dependencies from the WEB-INF/lib folder
 since all these jar files will be placed into tomcat/lib folder.


I highly recommend having a look at the freely available books at
http://maven.apache.org/articles.html

You might not need that knowledge right now, but you will eventually, and
it may also trigger off more thoughts about what else you would like to
achieve with the conversion.