Hi,
thank you for all the helpful tips about where to look for creating
archetypes. I am summarizing what I learned in a step-by-step guide below:
The only question that I have not been able to solve is how to use
instruct an archetype to create an EMPTY directory (<directory> tag does
not work).
--------------------------------------------------------------------------------------------------------
H O W T O C R E A T E A N A R C H E
T Y P E
--------------------------------------------------------------------------------------------------------
1. Create a new project.
add the directories:
src/main/resources/META-INF //will hold archetype.xml
src/main/resources/archetype-resources //will hold the pom.xml and
source tree that need to be copied
2. Create a POM for the archetype, e.g.
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>my.groupId<groupId>
<artifactId>my-archetype-id</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
</project>
3. The file structure for your archetype must be located in the
directory: src/main/resources/META-INF and
src/main/resources/archetype-resources
4. create an archetype descriptor in a file called archetype.xml and
place it in:
src/main/resources/META-INF/pom.xml
Note that <allowPartial>true</allowPartial> makes it possible to run the
archetype creation on an existing project.
for example:
<archetype>
<id>my-archetype-id</id>
<allowPartial>false</allowPartial>
<sources>
<source>src/main/java/App.java</source>
</sources>
<testSources>
<source>src/test/java/AppTest.java</source>
</testSources>
<siteResources>
<resource>src/site/apt/index.apt</resource>
</siteResources>
</archetype>
You can select from the following tags:
<sources> = src/main/java
<resources> = src/main/resources
<test-sources> = src/test/java
<test-resources> = src/test/resources
<site-resources> = src/site
(I have not been able to find a way to create empty directories, though).
5. create the pom.xml that the archetype should create and place it
in:
src/main/resources/archetype-resources/pom.xml
for example:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<packaging>jar</packaging>
<version>${version}</version>
<name>A custom project</name>
<url>http://www.myorganization.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
6. run mvn install
This installs your archetype locally.
7. to create a new project based on your archetype use:
mvn archetype:create -DarchetypeGroupId=my.groupId
-DarchetypeArtifactId=my-archetype-id -DarchetypeVersion=1.0-SNAPSHOT
-DgroupId=my.organization -DartifactId=myArtifactId
Note: Don't forget -DarchetypeVersion !
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]