Re: Help with converting existing ant build to maven is required - forking
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=HEAD&view=markup util http://svn.apache.org/viewvc/openmeetings/trunk/ singlewebapp/openmeetings-util/pom.xml?revision=HEAD&view=markup web http://svn.apache.org/viewvc/openmeetings/trunk/ singlewebapp/openmeetings-web/pom.xml?revision=HEAD&view=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 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) Curr
Re: Help with converting existing ant build to maven is required - forking
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 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=HEAD&view=markup util http://svn.apache.org/viewvc/openmeetings/trunk/ singlewebapp/openmeetings-util/pom.xml?revision=HEAD&view=markup web http://svn.apache.org/viewvc/openmeetings/trunk/ singlewebapp/openmeetings-web/pom.xml?revision=HEAD&view=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 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 proj
Re: Help with converting existing ant build to maven is required - forking
Make the dependency "optional" seems to help :) On Thu, May 1, 2014 at 7:43 AM, 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=HEAD&view=markup >>> util >>> http://svn.apache.org/viewvc/openmeetings/trunk/ >>> singlewebapp/openmeetings-util/pom.xml?revision=HEAD&view=markup >>> web >>> http://svn.apache.org/viewvc/openmeetings/trunk/ >>> singlewebapp/openmeetings-web/pom.xml?revision=HEAD&view=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 > 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) >>
Re: Help with converting existing ant build to maven is required - forking
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=HEAD&view=markup >> util >> http://svn.apache.org/viewvc/openmeetings/trunk/ >> singlewebapp/openmeetings-util/pom.xml?revision=HEAD&view=markup >> web >> http://svn.apache.org/viewvc/openmeetings/trunk/ >> singlewebapp/openmeetings-web/pom.xml?revision=HEAD&view=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 >>> 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] >>> >
Re: Help with converting existing ant build to maven is required - forking
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=HEAD&view=markup util http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-util/pom.xml?revision=HEAD&view=markup web http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/pom.xml?revision=HEAD&view=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 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 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.
Re: Help with converting existing ant build to maven is required - forking
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=HEAD&view=markup util http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-util/pom.xml?revision=HEAD&view=markup web http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/pom.xml?revision=HEAD&view=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 > 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 >>> > 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, Russel
Re: Help with converting existing ant build to maven is required - forking
On 30 April 2014 11:54, 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. 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.
Re: Help with converting existing ant build to maven is required - forking
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 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 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 wrote: HI Maxim, Here is how I do child projects: com.meterware.totalizer totalizer 1.0-SNAPSHOT .. server 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 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(
Re: Help with converting existing ant build to maven is required - forking
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 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 > >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 > wrote: > > HI Maxim, > >> Here is how I do child projects: >> >> >> com.meterware.totalizer >> totalizer >> 1.0-SNAPSHOT >> .. >> >> >> server >> >> >> 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 >> 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 (ea8b2b07643dbb1b84b6d
Re: Help with converting existing ant build to maven is required - forking
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 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 wrote: HI Maxim, Here is how I do child projects: com.meterware.totalizer totalizer 1.0-SNAPSHOT .. server 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 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 usin
Re: Help with converting existing ant build to maven is required - forking
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 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 >>> wrote: >>> >>> HI Maxim, Here is how I do child projects: com.meterware.totalizer totalizer 1.0-SNAPSHOT .. server 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 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 a
Re: Help with converting existing ant build to maven is required - forking
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 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 >> wrote: >> >> HI Maxim, >>> >>> Here is how I do child projects: >>> >>> >>> com.meterware.totalizer >>> totalizer >>> 1.0-SNAPSHOT >>> .. >>> >>> >>> server >>> >>> >>> 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 >>> 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 >> > dir
Re: Help with converting existing ant build to maven is required - forking
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 wrote: HI Maxim, Here is how I do child projects: com.meterware.totalizer totalizer 1.0-SNAPSHOT .. server 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 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 : 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 quick reply! Red5-server is "custom tomcat" (zip/tgz with scripts, libraries, configs etc.). We need to pack it in our distribution, not sure