Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Minerva"
(→Building) |
|||
Line 103: | Line 103: | ||
== Features == | == Features == | ||
+ | |||
+ | Features simply reference the parent pom and have a packaging attribute of '''eclipse-feature'''. | ||
+ | |||
+ | Here's a [https://github.com/caniszczyk/minerva/blob/master/org.aniszczyk.minerva-feature/pom.xml pom.xml] snippet from the minerva feature: | ||
+ | |||
+ | <pre style="width: 40em;"> | ||
+ | <parent> | ||
+ | <groupId>org.aniszczyk.minerva</groupId> | ||
+ | <artifactId>minerva-parent</artifactId> | ||
+ | <version>1.0.0-SNAPSHOT</version> | ||
+ | </parent> | ||
+ | |||
+ | <artifactId>org.aniszczyk.minerva-feature</artifactId> | ||
+ | <packaging>eclipse-feature</packaging> | ||
+ | |||
+ | <name>Minerva Feature (Incubation)</name> | ||
+ | </pre> | ||
== Plug-ins == | == Plug-ins == | ||
+ | |||
+ | Plug-ins simply reference the parent pom and have a packaging attribute of '''eclipse-plugin'''. | ||
+ | |||
+ | Here's a [https://github.com/caniszczyk/minerva/blob/master/org.aniszczyk.minerva.core/pom.xml pom.xml] snippet from the minerva core plug-in: | ||
+ | |||
+ | <pre style="width: 40em;"> | ||
+ | <parent> | ||
+ | <groupId>org.aniszczyk.minerva</groupId> | ||
+ | <artifactId>minerva-parent</artifactId> | ||
+ | <version>1.0.0-SNAPSHOT</version> | ||
+ | </parent> | ||
+ | |||
+ | <artifactId>org.aniszczyk.minerva.core</artifactId> | ||
+ | <packaging>eclipse-plugin</packaging> | ||
+ | |||
+ | <name>Minerva Core Plug-in</name> | ||
+ | </pre> | ||
== Repositories (Update Sites) == | == Repositories (Update Sites) == | ||
+ | |||
+ | Plug-ins simply reference the parent pom and have a packaging attribute of '''eclipse-update-site'''. | ||
+ | |||
+ | Here's a [https://github.com/caniszczyk/minerva/blob/master/org.aniszczyk.minerva-updatesite/pom.xml pom.xml] snippet from the minerva site: | ||
+ | |||
+ | <pre style="width: 40em;"> | ||
+ | <parent> | ||
+ | <groupId>org.aniszczyk.minerva</groupId> | ||
+ | <artifactId>minerva-parent</artifactId> | ||
+ | <version>1.0.0-SNAPSHOT</version> | ||
+ | </parent> | ||
+ | |||
+ | <artifactId>org.aniszczyk.minerva-updatesite</artifactId> | ||
+ | <packaging>eclipse-update-site</packaging> | ||
+ | </pre> | ||
= Tests = | = Tests = |
Revision as of 16:59, 3 March 2011
Minerva is the Maven version of Athena.
Contents
Building
To build the project from the command line after checking the code out, simply run
mvn -Dskip.ui.tests clean install
In Maven, the parent pom.xml serves as the central point on adding things to the build. It's also generally the most complicated piece of the build as it contains information that is shared by children pom.xml files.
The first part of the parent pom.xml we'll look at contains identifying information:
... <groupId>org.aniszczyk.minerva</groupId> <artifactId>minerva-parent</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging> <name>Minvera Parent</name> ...
The second part contains profile information and where to get dependencies.
<properties> <tycho-version>0.10.0</tycho-version> <platform-version-name>helios</platform-version-name> <eclipse-site>http://download.eclipse.org/releases/${platform-version-name}</eclipse-site> <wikitext-site>http://download.eclipse.org/tools/mylyn/update/weekly</wikitext-site> <swtbot-site>http://download.eclipse.org/technology/swtbot/${platform-version-name}/dev-build/update-site</swtbot-site> </properties> <profiles> <profile> <id>platform-helios</id> <activation> <property> <name>platform-version-name</name> <value>helios</value> </property> </activation> <properties> <eclipse-site>http://download.eclipse.org/releases/helios</eclipse-site> <platform-version>[3.6,3.7)</platform-version> <swtbot-site>http://download.eclipse.org/technology/swtbot/helios/dev-build/update-site</swtbot-site> </properties> </profile> <profile> <id>platform-indigo</id> <activation> <property> <name>platform-version-name</name> <value>indigo</value> </property> </activation> <properties> <eclipse-site>http://download.eclipse.org/releases/indigo</eclipse-site> <platform-version>[3.7,3.8)</platform-version> <swtbot-site>http://download.eclipse.org/technology/swtbot/indigo/dev-build/update-site</swtbot-site> </properties> </profile> </profiles> ... <repositories> <repository> <id>helios</id> <layout>p2</layout> <url>${eclipse-site}</url> </repository> <repository> <id>swtbot</id> <layout>p2</layout> <url>${swtbot-site}</url> </repository> <repository> <id>wikitext</id> <layout>p2</layout> <url>${wikitext-site}</url> </repository> </repositories>
The third part lists the modules (e.g., features, plug-ins) that are part of the build:
<modules> <module>org.aniszczyk.minerva.core</module> <module>org.aniszczyk.minerva.ui</module> <module>org.aniszczyk.minerva-feature</module> <module>org.aniszczyk.minerva.source-feature</module> <module>org.aniszczyk.minerva.tests.core</module> <module>org.aniszczyk.minerva.tests.ui</module> <module>org.aniszczyk.minerva-updatesite</module> </modules>
Features
Features simply reference the parent pom and have a packaging attribute of eclipse-feature.
Here's a pom.xml snippet from the minerva feature:
<parent> <groupId>org.aniszczyk.minerva</groupId> <artifactId>minerva-parent</artifactId> <version>1.0.0-SNAPSHOT</version> </parent> <artifactId>org.aniszczyk.minerva-feature</artifactId> <packaging>eclipse-feature</packaging> <name>Minerva Feature (Incubation)</name>
Plug-ins
Plug-ins simply reference the parent pom and have a packaging attribute of eclipse-plugin.
Here's a pom.xml snippet from the minerva core plug-in:
<parent> <groupId>org.aniszczyk.minerva</groupId> <artifactId>minerva-parent</artifactId> <version>1.0.0-SNAPSHOT</version> </parent> <artifactId>org.aniszczyk.minerva.core</artifactId> <packaging>eclipse-plugin</packaging> <name>Minerva Core Plug-in</name>
Repositories (Update Sites)
Plug-ins simply reference the parent pom and have a packaging attribute of eclipse-update-site.
Here's a pom.xml snippet from the minerva site:
<parent> <groupId>org.aniszczyk.minerva</groupId> <artifactId>minerva-parent</artifactId> <version>1.0.0-SNAPSHOT</version> </parent> <artifactId>org.aniszczyk.minerva-updatesite</artifactId> <packaging>eclipse-update-site</packaging>
Tests
TODO
Headless Tests
TODO
UI Tests
TODO
Documentation
TODO
Code Coverage
TODO
Signing
TODO
Publishing
TODO