Re: How to execute Java task within a Archetype

2009-02-25 Thread Sagara Gunathunga
HI all,
Adam , thanks for your comments , it seems like maven-antrun-plugin
could  use for this , but still I don't have exact idea  how can I use
it with my scenario, here I describe what I have done and what I
expect to do   in details

I create a Maven project to create a archetype called myquickstart
according to [1]   , this is the archetype.xml file for that.

archetype
  idmyquickstart/id
  sources
sourcesrc/main/java/SimpleService.java/source
  /sources
  testSources
 sourcesrc/test/java/AppTest.java/source
  /testSources
   resources
resourcesrc/main/webapp/WEB-INF/web.xml/resource
/resources
/archetype


and this is the POM file for myquickstart project.

?xml version=1.0 encoding=UTF-8?
project
  modelVersion4.0.0/modelVersion
  groupIdmy/groupId
  artifactIdmyquickstart/artifactId
  version1.0.0/version
  description/description
/project


running mvn install   build and install myquickstart archetype in to
my local repo, then I can use mvn archetype:generate
-DarchetypeGroupId=my -DarchetypeArtifactId=myquickstart
-DarchetypeVersion=1.0.0to create a sample project successfully .


But this will copy source and resources files from archetype to new
project directory as I described in archetype.xml , what I expect to
do is , in addition to these things run a java method automatically
when I use  mvn archetype:generate  command as above to
create new projects using myquickstart archetype.



I'm not sure   where I have to define Ant task ...? is it possible to
define such custom task within my  archetype.xml  file ...?
otherwise how can enforce Maven to execute custom task with  mvn
archetype:generate ..?


Thanks ,


On Tue, Feb 24, 2009 at 10:59 PM, Adam Leggett adam.legg...@upco.co.uk wrote:
 There are a number of ways to do this. A shell script is one option that
 springs to mind.
 For a simple 'pure' Maven approach that doesnt require you to write much
 code you could try something like this

 A pom (make sure you rename it to bootstrap.xml or some such) -

 project
  modelVersion4.0.0/modelVersion
  groupIdcom.acme/groupId
  artifactIdproject-gen/artifactId
  packagingpom/packaging
  version1.0-SNAPSHOT/version
  build
   directory${genArtifactId}/directory
   plugins
plugin
artifactIdmaven-antrun-plugin/artifactId
executions
  execution
phaseprocess-resources/phase
goals
  goalrun/goal
/goals
configuration
tasks
echo message=processing generated project 
 ${genArtifactId} .../
/tasks
/configuration
  /execution
/executions
  /plugin
  plugin
artifactIdmaven-archetype-plugin/artifactId
executions
  execution
phasegenerate-resources/phase
goals
  goalcreate/goal
/goals
configuration
groupId${genGroupId}/groupId
artifactId${genArtifactId}/artifactId
/configuration
  /execution
/executions
  /plugin
/plugins
  /build
 /project

 Combined with the following command line:

 mvn clean process-resources -DgenArtifactId=test-project
 -DgenGroupId=com.acme -f bootstrap.xml

 Should create you a basic quickstart project in a relative folder named
 [genArtifactId]

 You will need to invoke your Java 'method' via the antrun plugin.

 On Tue, 2009-02-24 at 14:49 +0100, Nick Stolwijk wrote:
 First, the create goal has been deprecated, you can better use the
 generate goal.

 Second, the documentation[1] says that it runs the generate-sources
 before executing, so maybe it is possible to add your own plugin
 there. Unfortunately, I don't know how it can be done and I can't find
 any documentation or examples. Can someone more knowledgeable share
 his insights?

 [1] http://maven.apache.org/plugins/maven-archetype-plugin/generate-mojo.html

 Hth,

 Nick Stolwijk
 ~Java Developer~

 Iprofs BV.
 Claus Sluterweg 125
 2012 WS Haarlem
 www.iprofs.nl



 On Tue, Feb 24, 2009 at 10:47 AM, Sagara Gunathunga sagar...@gmail.com 
 wrote:
  Hi all
 
  AFAIK when execute archetype:create command , the archetype copy the
   folder structure with resources  according to  the archetype's
  archetype.xml file . I want to execute a custom Java method  in
  addition to above default behaviour  along  with archetype:create
  command . Is there any way to achieve this ? if so please update
  me with some references .
 
 
 
  Thanks ,
 
 
  Sagara Gunathunga
 
  Blog - http://ssagara.blogspot.com
  Web - http://sagaras.awardspace.com/
 
  -
  To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
  For additional commands, e-mail: users-h...@maven.apache.org
 
 

 -
 To unsubscribe, e-mail: 

Re: How to execute Java task within a Archetype

2009-02-25 Thread Adam Leggett

 how can enforce Maven to execute custom task with  mvn
 archetype:generate ..?
 

generate is a goal of the archetype plug-in; AFAIK, you will need to
either hack the source code of the archetype plug-in itself to execute
some additional steps as part of the goal execution or post process the
generated project as indicated in my previous response.

What exactly is your requirement here? What does your additional step
need to do?

-- 
Adam Leggett
BuildFactory Principal Architect
UPCO
Office: 0113 20 10 600
Direct Line: 0113 20 10 631
Mobile: 07801 269056

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



Re: How to execute Java task within a Archetype

2009-02-25 Thread Sagara Gunathunga
Hi Adam,
Thanks again , I want to run a HTTP server within the generate goal
and then genarate some HTTPClient codes , these client codes depend on
the running HTTP server ,and not possible to package within the
archetype as templates.

I don't think hack the source code  is a good choice here ,  because
other people cant use my archetype with official  Maven2 distro , so
it seems like  post process the custom task in to  the new project's
scope is the only solution here . I will try to achieve this as a
plug-in .

Thanks ,

On Wed, Feb 25, 2009 at 2:23 PM, Adam Leggett adam.legg...@upco.co.uk wrote:

 how can enforce Maven to execute custom task with  mvn
 archetype:generate ..?


 generate is a goal of the archetype plug-in; AFAIK, you will need to
 either hack the source code of the archetype plug-in itself to execute
 some additional steps as part of the goal execution or post process the
 generated project as indicated in my previous response.

 What exactly is your requirement here? What does your additional step
 need to do?

 --
 Adam Leggett
 BuildFactory Principal Architect
 UPCO
 Office: 0113 20 10 600
 Direct Line: 0113 20 10 631
 Mobile: 07801 269056

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





-- 
Sagara Gunathunga

Blog - ssagara.blogspot.com
Web - http://sagaras.awardspace.com/

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



RE: How to execute Java task within a Archetype

2009-02-25 Thread Adam Leggett
If you do implement it as a plug-in then I'd suggest you create a
plug-in that does not require a pom so you can do

mvn archetype:create customplugin:goal -DartifactId= ...

You'll need '@requiresProject false' declared in your mojo impl javadoc.
I think the 'create' mojo is deprecated also. Maybe you should use
'generate 'instead.

-Original Message-
From: Sagara Gunathunga [mailto:sagar...@gmail.com] 
Sent: 25 February 2009 09:48
To: Maven Users List
Subject: Re: How to execute Java task within a Archetype

Hi Adam,
Thanks again , I want to run a HTTP server within the generate goal
and then genarate some HTTPClient codes , these client codes depend on
the running HTTP server ,and not possible to package within the
archetype as templates.

I don't think hack the source code  is a good choice here ,  because
other people cant use my archetype with official  Maven2 distro , so
it seems like  post process the custom task in to  the new project's
scope is the only solution here . I will try to achieve this as a
plug-in .

Thanks ,

On Wed, Feb 25, 2009 at 2:23 PM, Adam Leggett adam.legg...@upco.co.uk
wrote:

 how can enforce Maven to execute custom task with  mvn
 archetype:generate ..?


 generate is a goal of the archetype plug-in; AFAIK, you will need to
 either hack the source code of the archetype plug-in itself to execute
 some additional steps as part of the goal execution or post process
the
 generated project as indicated in my previous response.

 What exactly is your requirement here? What does your additional step
 need to do?

 --
 Adam Leggett
 BuildFactory Principal Architect
 UPCO
 Office: 0113 20 10 600
 Direct Line: 0113 20 10 631
 Mobile: 07801 269056

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





-- 
Sagara Gunathunga

Blog - ssagara.blogspot.com
Web - http://sagaras.awardspace.com/

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


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



How to execute Java task within a Archetype

2009-02-24 Thread Sagara Gunathunga
Hi all

AFAIK when execute archetype:create command , the archetype copy the
 folder structure with resources  according to  the archetype's
archetype.xml file . I want to execute a custom Java method  in
addition to above default behaviour  along  with archetype:create
command . Is there any way to achieve this ? if so please update
me with some references .



Thanks ,


Sagara Gunathunga

Blog - http://ssagara.blogspot.com
Web - http://sagaras.awardspace.com/

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



Re: How to execute Java task within a Archetype

2009-02-24 Thread Nick Stolwijk
First, the create goal has been deprecated, you can better use the
generate goal.

Second, the documentation[1] says that it runs the generate-sources
before executing, so maybe it is possible to add your own plugin
there. Unfortunately, I don't know how it can be done and I can't find
any documentation or examples. Can someone more knowledgeable share
his insights?

[1] http://maven.apache.org/plugins/maven-archetype-plugin/generate-mojo.html

Hth,

Nick Stolwijk
~Java Developer~

Iprofs BV.
Claus Sluterweg 125
2012 WS Haarlem
www.iprofs.nl



On Tue, Feb 24, 2009 at 10:47 AM, Sagara Gunathunga sagar...@gmail.com wrote:
 Hi all

 AFAIK when execute archetype:create command , the archetype copy the
  folder structure with resources  according to  the archetype's
 archetype.xml file . I want to execute a custom Java method  in
 addition to above default behaviour  along  with archetype:create
 command . Is there any way to achieve this ? if so please update
 me with some references .



 Thanks ,


 Sagara Gunathunga

 Blog - http://ssagara.blogspot.com
 Web - http://sagaras.awardspace.com/

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



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



Re: How to execute Java task within a Archetype

2009-02-24 Thread Adam Leggett
There are a number of ways to do this. A shell script is one option that
springs to mind. 
For a simple 'pure' Maven approach that doesnt require you to write much
code you could try something like this

A pom (make sure you rename it to bootstrap.xml or some such) - 

project
  modelVersion4.0.0/modelVersion
  groupIdcom.acme/groupId
  artifactIdproject-gen/artifactId
  packagingpom/packaging
  version1.0-SNAPSHOT/version
  build
   directory${genArtifactId}/directory
   plugins
plugin
artifactIdmaven-antrun-plugin/artifactId
executions
  execution
phaseprocess-resources/phase
goals
  goalrun/goal
/goals
configuration
tasks
echo message=processing generated project 
${genArtifactId} .../
/tasks
/configuration
  /execution
/executions
  /plugin
  plugin
artifactIdmaven-archetype-plugin/artifactId
executions
  execution
phasegenerate-resources/phase
goals
  goalcreate/goal
/goals
configuration
groupId${genGroupId}/groupId
artifactId${genArtifactId}/artifactId
/configuration
  /execution
/executions
  /plugin
/plugins
  /build
/project

Combined with the following command line:

mvn clean process-resources -DgenArtifactId=test-project
-DgenGroupId=com.acme -f bootstrap.xml

Should create you a basic quickstart project in a relative folder named
[genArtifactId]

You will need to invoke your Java 'method' via the antrun plugin.

On Tue, 2009-02-24 at 14:49 +0100, Nick Stolwijk wrote:
 First, the create goal has been deprecated, you can better use the
 generate goal.
 
 Second, the documentation[1] says that it runs the generate-sources
 before executing, so maybe it is possible to add your own plugin
 there. Unfortunately, I don't know how it can be done and I can't find
 any documentation or examples. Can someone more knowledgeable share
 his insights?
 
 [1] http://maven.apache.org/plugins/maven-archetype-plugin/generate-mojo.html
 
 Hth,
 
 Nick Stolwijk
 ~Java Developer~
 
 Iprofs BV.
 Claus Sluterweg 125
 2012 WS Haarlem
 www.iprofs.nl
 
 
 
 On Tue, Feb 24, 2009 at 10:47 AM, Sagara Gunathunga sagar...@gmail.com 
 wrote:
  Hi all
 
  AFAIK when execute archetype:create command , the archetype copy the
   folder structure with resources  according to  the archetype's
  archetype.xml file . I want to execute a custom Java method  in
  addition to above default behaviour  along  with archetype:create
  command . Is there any way to achieve this ? if so please update
  me with some references .
 
 
 
  Thanks ,
 
 
  Sagara Gunathunga
 
  Blog - http://ssagara.blogspot.com
  Web - http://sagaras.awardspace.com/
 
  -
  To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
  For additional commands, e-mail: users-h...@maven.apache.org
 
 
 
 -
 To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
 For additional commands, e-mail: users-h...@maven.apache.org
 
-- 
Adam Leggett
BuildFactory Principal Architect
UPCO
Office: 0113 20 10 600
Direct Line: 0113 20 10 631
Mobile: 07801 269056

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