В вашем Приложении я запутался с ArtifactId
, так как, я вижу, вы дали как "example"
, где, когда вы передаете свой аргумент как "simple"
. Вот простой пример создания нового артефакта.
1. Создайте новый проект и pom.xml для артефакта архетипа
Пример pom.xml для артефакта архетипа выглядит следующим образом:
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.groupId</groupId>
<artifactId>my-archetype-id</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
</project>
Все, что вам нужно указать, это groupId, artifactId и version. Эти три параметра понадобятся позже для вызова архетипа через архетип: создание из командной строки.
2. Создать дескриптор архетипа
Дескриптор архетипа - это файл с именем archetype.xml, который должен находиться в каталоге src / main / resources / META-INF / maven /. Пример дескриптора архетипа можно найти в быстродействующем архетипе:
<archetype
xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org
/plugins/maven-archetype-plugin/archetype/1.0.0
http://maven.apache.org/xsd/archetype-1.0.0.xsd">
<id>quickstart</id>
<sources>
<source>src/main/java/App.java</source>
</sources>
<testSources>
<source>src/test/java/AppTest.java</source>
</testSources>
</archetype>
Тег должен совпадать с artifactId в архетипе pom.xml.
Необязательный тег true позволяет запускать архетип: создавать даже на существующих проектах.
Теги,,, и представляют различные разделы проекта:
<sources> = src/main/java
<resources> = src/main/resources
<testSources> = src/test/java
<testResources> = src/test/resources
<siteResources> = src/site
<sources> and <testSources> can contain <source>
elements that specify a source file.
и может содержать элементы, которые определяют файл ресурса.
Поместите другие ресурсы, например, в каталог src / main / webapp внутри тега.
На данный момент можно указывать только отдельные файлы для создания, но не пустые каталоги.
Таким образом, архетип быстрого запуска, показанный выше, определяет следующую структуру каталогов:
archetype
|-- pom.xml
`-- src
`-- main
`-- resources
|-- META-INF
| `-- maven
| `--archetype.xml
`-- archetype-resources
|-- pom.xml
`-- src
|-- main
| `-- java
| `-- App.java
`-- test
`-- java
`-- AppTest.java
3. Создайте файлы прототипа и прототип pom.xml
Следующим компонентом создаваемого архетипа является прототип pom.xml. Подойдет любой pom.xml, только не забудьте установить artifactId и groupId в качестве переменных ($ {artifactId} / $ {groupId}). Обе переменные будут инициализированы из командной строки при вызове archetype: create.
Примером прототипа pom.xml является:
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<version>${version}</version>
<packaging>jar</packaging>
<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>
4. Установите архетип и запустите плагин архетипа
Теперь вы готовы установить архетип:
mvn install
Теперь, когда вы создали архетип, вы можете попробовать его в своей локальной системе с помощью следующей команды. В этой команде вам нужно указать полную информацию об архетипе, который вы хотите использовать (его groupId, artifactId, его версию) и информацию о новом проекте, который вы хотите создать (artifactId и groupId). Не забудьте указать версию вашего архетипа (если вы не включите версию, создание архетипа может завершиться неудачно с сообщением о том, что версия: RELEASE не найдена)
mvn archetype:create \
-DarchetypeGroupId=<archetype-groupId> \
-DarchetypeArtifactId=<archetype-artifactId> \
-DarchetypeVersion=<archetype-version> \
-DgroupId=<my.groupid> \
-DartifactId=<my-artifactId>
Как только вы довольны состоянием своего архетипа, вы можете развернуть (или отправить его в ibiblio) его как любой другой артефакт, и архетип будет доступен любому пользователю Maven.
Альтернативный способ начать создание своего архетипа
Вместо того, чтобы вручную создавать структуру каталогов, необходимую для архетипа, просто используйте
mvn archetype:create
-DgroupId=[your project's group id]
-DartifactId=[your project's artifact id]
-DarchetypeArtifactId=maven-archetype-archetype
После этого теперь вы можете настроить содержимое каталога archetype-resources и archetype.xml, а затем перейти к шагу # 4 (установить архетип и запустить плагин архетипа).