A pom.xml felépítése
Ha az Atlassian Plugin SDK-val generálunk egy projektet, akkor a parancssorban megadott adatok alapján feltölti a pom.xml-t is adatokkal. A pom.xml felépítését az Atlassian dokumentáció leírja, de a főbb elemeket itt is kiemelem.
<?xml version="1.0" encoding="UTF-8"?> <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>hu.lacimol.tutorial</groupid> <artifactid>jiradevtutor</artifactid> <version>1.0-SNAPSHOT</version> <organization> <name>Molnár László</name> <url>http://jiradev.blog.hu</url> </organization> <name>JiraDevTutor</name> <description>This is the hu.lacimol.tutorial:helloworld plugin for Atlassian JIRA.</description> <packaging>atlassian-plugin</packaging> <!-- további elemek, pl: dependencies, build --> <properties> <jira.version>5.1.8</jira.version> <amps.version>4.1.6</amps.version> <plugin.testrunner.version>1.1.1</plugin.testrunner.version> </properties> </project>
A fent kiemelt részek így fognak megjelenni az admin oldalon a Plugin-ek alatt:
Maven beállítások
A telepített SDK tartalmazza a Maven-t is (2.1.0), de ha más verziót használnánk, akkor a lenti konfigurációs beállításokat át kell vezetnünk. A Maven a függőségek kezelését a [MAVEN_HOME]/conf/settings.xml-ben lévő adatok alapján végzi, az ott megadott szerverekről tölti le a helyi reporsitory-ba.
settings.xml
<plugingroups> <plugingroup>com.atlassian.maven.plugins</plugingroup> </plugingroups> <!-- további elemek --> <!-- Default profile containing Atlassian servers --> <profile> <id>defaultProfile</id> <activation> <activebydefault>true</activebydefault> </activation> <repositories> <repository> <id>atlassian-public</id> <url>https://m2proxy.atlassian.com/repository/public</url> <snapshots> <enabled>true</enabled> <updatepolicy>never</updatepolicy> <checksumpolicy>warn</checksumpolicy> </snapshots> <releases> <enabled>true</enabled> <checksumpolicy>warn</checksumpolicy> </releases> </repository> <repository> <id>atlassian-plugin-sdk</id> <url>file://${env.ATLAS_HOME}/repository</url> <snapshots> <enabled>false</enabled> </snapshots> <releases> <enabled>true</enabled> <checksumpolicy>warn</checksumpolicy> </releases> </repository> </repositories> <pluginrepositories> <pluginrepository> <id>atlassian-public</id> <url>https://m2proxy.atlassian.com/repository/public</url> <releases> <enabled>true</enabled> <checksumpolicy>warn</checksumpolicy> </releases> <snapshots> <updatepolicy>never</updatepolicy> <checksumpolicy>warn</checksumpolicy> </snapshots> </pluginrepository> <pluginrepository> <id>atlassian-plugin-sdk</id> <url>file://${env.ATLAS_HOME}/repository</url> <releases> <enabled>true</enabled> <checksumpolicy>warn</checksumpolicy> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginrepository> </pluginrepositories> <properties> <downloadsources>true</downloadsources> <downloadjavadocs>true</downloadjavadocs> </properties> </profile>
Maven projekt az Eclipse-ben
Az Atlassian HelloWorld projekt a leírás alapján Java projektként kerül be az Eclipse-be, de néhány apró módosítással Maven projekté alakíthatjuk. Az átalakítás után egyszerűbb lesz a frissítés, a kommitálás és a szerverindítás. A HelloWorld projektet átalakíthatjuk a Jobb klikk --- Configure --- "Convert to Maven project" kiválasztásával vagy eleve Maven projektként importáljuk. Az így módosított projekt hibát fog jelezni (Plugin execution not covered by lifecycle configuration), amit a lenti pom.xml módosítással orvosolhatunk.
<?xml version="1.0" encoding="UTF-8"? > <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>hu.lacimol.tutorial</groupid> <artifactid>jiradevtutor</artifactid> <version>1.0-SNAPSHOT</version> <organization> <name>Molnár László</name> <url>http://jiradev.blog.hu</url> </organization> <name>JiraDevTutor</name> <description>This is the hu.lacimol.tutorial:helloworld plugin for Atlassian JIRA.</description> <packaging>atlassian-plugin</packaging> <!-- További elemek: dependencies --> <build> <!-- További elemek: plugins --> <pluginmanagement> <plugins> <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. --> <plugin> <groupid>org.eclipse.m2e</groupid> <artifactid>lifecycle-mapping</artifactid> <version>1.0.0</version> <configuration> <lifecyclemappingmetadata> <pluginexecutions> <pluginexecution> <pluginexecutionfilter> <groupid>com.atlassian.maven.plugins</groupid> <artifactid>maven-jira-plugin</artifactid> <versionrange>[4.1.6,)</versionrange> <goals> <goal>filter-plugin-descriptor</goal> <goal>filter-test-plugin-descriptor</goal> <goal>copy-bundled-dependencies</goal> <goal>copy-test-bundled-dependencies</goal> <goal>compress-resources</goal> <goal>generate-manifest</goal> <goal>generate-test-manifest</goal> <goal>generate-rest-docs</goal> </goals> </pluginexecutionfilter> <action> <ignore></ignore> </action> </pluginexecution> </pluginexecutions> </lifecyclemappingmetadata> </configuration> </plugin> </plugins> </pluginmanagement> </build> <!-- További elemek: properties --> </project>
A módosítás után már nem jelez hibát a fordító. Ezután hozzunk létre a "Run Configurations" menü alatt egy indító parancsot. Itt a Maven fül alatt állítsuk be a "com.atlassian.maven.plugins:maven-amps-dispatcher-plugin:4.1.6:run" parancsot a Goals résznél, majd növeljük a JRE fül alatt a Maven fordításhoz szükséges memóriát: -Xmx768M -XX:MaxPermSize=256M. Ezután a lenti konfigurációval kiválthatjuk a parancssorból futtatható "atlas-run"-t.
A fenti módosítások letölthetők SVN-en keresztül és becsomagolva a blog GoogleCode oldaláról a JiraDevTutor projektből. A fenti kód fordításához telepíteni kell az SDK-t és be kell állítani az abban telepített Maven-t az Eclipse-ben (Run Configurations --- Maven Build --- Maven runtime).