Languages
 
 
 
 
Navigation
 
 
 
 
 
 

Как создать Ваш собственный скин для maven 2 проекта

Maven - это open source система управления проектами, созданная в Apache software foundation. В ней присутствуют множество интересных вещей, включая понятие модели проекта (Project Object Model) и систему плагинов.

Одним из стандартных, и наиболее часто используемых плагинов, является site плагин (maven-site-plugin). Он предоставляет возможность генерации документации по проекту в виде web сайта. Начиная с версии 2.0-beta-5 появилась возможность создавать свои собственные скины для сайта с документацией.

Эта заметка будет интересна разработчиков, которые уже знакомы с системой maven 2 и используют ее. Я постараюсь сделать небольшое введение о том, как сделать свой скин.

Итак, с чего же начать? Главное, что ваш скин это тоже maven проект, который идет в виде плагина. Для этого в модели проекта вы должны указать, что ваш проект - плагин (“maven-plugin”):

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.kobyleha.maven.skins</groupId>
  <artifactId>embedchat-skin</artifactId>
  <packaging>maven-plugin</packaging>
  <version>1.0</version>
  <name>Custom skin for embedchat application project</name>
  <url>http://embedchat.org</url>
</project>

Все ресурсы сайта (стили, рисунки) должны быть расположены в папке “/src /resources”. Вы можете сделать вложенные папки. Как пример, можно использовать “/src /resources /css” для стилей и “/src /resources /images” для картинок.

Сердце вашего скина - velocity шаблон (site.vm). Этот файл должен находиться в папке“/src /resources /META-INF /maven/”. Для начала, Вы сожжете взять стандартный шаблон, используемый в maven, и изменить его как вам хочется. Стандартный шаблон можно найти в jar архиве вашего локального репозитория /org /apache/maven /doxia /doxia-site-renderer /1.0-alpha-8 / doxia-site-renderer-1.0-alpha-8.jar. Файл в jar архиве /org /apache /maven /doxia /siterenderer /resources /default-site.vm.

Site.vm - это velocity шаблон, который может использовать любые ресурсы, описанные в модели проекта. Как пример, Вы можете получить доступ к списку разработчиков, дополнительным модулям или зависимостям.

Немного дизайнерской работы, и я думаю, что Вы сможете получить хороший скин для сайта вашего проекта.

Далее устанавливаем скин в репозиторий (команда ‘mvn install’) и применяем его в каком-то проекте для генерации сайта.

Для использования скина необходимо добавить запись в дескриптор генерируемого сайта (site.xml):

<skin>
  <groupId>com.kobyleha.maven.skins</groupId>
  <artifactId>embedchat-skin</artifactId>
  <version>1.0</version>
</skin>

И используя команду “mvn site”, сгенерировать сайт.

Для примера, я сделал скин для проекта embedchat. И demo проект, который просто использует скин.

Ресурсы:

  • Вы можете скачать скин плагин.
  • Вы можете скачать demo проект, который использует этот плагин.
  • Вы можете увидеть сайт, использующий этот скин.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Мучался-мучался

Мучался-мучался с этим maven'ом, наконец нашел что-то про создание скинов. Большое спасибо - статья пригодилась!

Несколько дополнений

Для сайта packaging можно просто jar указать, ничего такого особенного в этом артефакте нет.
Также можно порекомендовать сделать:
  • s/mvn install/mvn clean install
  • s/mvn site/mvn clean site
чтобы небыло казусов с ресурсами :)
Стандартные CSS (например, maven-theme.css) и картинки кроме как в doxia лежат в еще в m2\repository\org\apache\maven\skins\maven-default-skin\1.0\maven-default-skin-1.0.jar\css и картинки там рядом.
Если честно, я не силен в velocity, но я так и не понял, как передать параметры в шалон, кроме как через pom.xml в project/properties/propertyName=propertyValue и из шаблона уже ссылаться можно сюда через $project.properties.propertyName
Как я понял, здесь velocity не причем, Maven2 просто как обычно отфильтрует то, что будет на выходе сайта и все.
Удачи :)
dmitrygusev at keyintegrity.com
P.S. Хозяину сайта Так и не понял, как вставить новую строку в комментарий, кроме как через теги dl/dt:)

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>

More information about formatting options

 
 
 
 
 
 
  • hooligan
  • cupuyc
  • ESoImk
  • LeKz
  • Anton
 
 
 
© 2006-2008 kobyleha.com