You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by Apache Wiki <wi...@apache.org> on 2013/02/05 16:37:05 UTC

[Marmotta Wiki] Update of "Maven" by SergioFernandez

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Marmotta Wiki" for change notification.

The "Maven" page has been changed by SergioFernandez:
http://wiki.apache.org/marmotta/Maven

Comment:
imported content

New page:
= Introduction =

LMF switched from [http://gradle.org/ Gradle] to [http://maven.apache.org/ Maven] as build system after the 2.4 release. At this page you would find some useful documentation for working with such tool and the Linked Media Framework.

= Installation = 

First, [http://maven.apache.org/download.html download Maven] and follow the [[http://maven.apache.org/download.html#Installation|installation instructions]].  After that, type the following in a terminal or in a command prompt:

{{{
mvn --version
}}}

It should print out your installed version of Maven. *Maven 3.x is required*.

== Repository ==

LMF artifacts are not available at main Maven repositories, so you'd need to add our repositories to your settings:

{{{
@@TODO@@
}}}

== Plugins Groups ===

The LMF artifacts use some plugins that are not under the default group, therefore for some tasks you may need to add some plugin groups to your ~/.m2/settings.xml file:

{{{
  <pluginGroups>
    ...
    <pluginGroup>org.apache.tomcat.maven</pluginGroup>
    <pluginGroup>org.mortbay.jetty</pluginGroup>
    <pluginGroup>org.phpmaven</pluginGroup>
    <pluginGroup>at.newmedialab.maven</pluginGroup>
  </pluginGroups>
}}}

= Working with LMF =

== Modifying a module ==

Just install it in your local repository:

{{{
mvn clean install
}}}

Hot deployment of LMF Webapps is also supported using [JRebel].

== Testing ==

{{{
mvn test
}}}

@@TODO@@

== Check test coverage ==

Using [[http://cobertura.sourceforge.net|Cobertura]] you can perform difference check the percentage of code accessed by tests:

{{{
cobertura:check
}}}


Further details at the [[http://mojo.codehaus.org/cobertura-maven-plugin/|Cobertura Maven plugin]].

== Build the site ==

{{{
mvn site
}}}

Alternative you can directly run it on a embeded server:

{{{
mvn site:run -Dport=8081
}}}

= Build your own applications based on LMF = 

== Build your own LMF Module ==

There is a Maven archetype for a LMF Module:

{{{
mvn archetype:generate \
   -DarchetypeGroupId=at.newmedialab.lmf \
   -DarchetypeArtifactId=lmf-archetype-module 
}}}

This will generate the following structure:

{{{
.
|-- pom.xml
`-- src
    `-- main
        |-- java
        `-- resources
            |-- kiwi-module.properties
            |-- META-INF
            |   `-- beans.xml
            `-- web
                `-- admin
                    |-- about.html
                    |-- configuration.html
                    `-- img
                        `-- clock_small.png
}}}

== Build your webapp based on LMF ==

There is a Maven archetype for a LMF Webapp:

{{{
mvn archetype:generate \
   -DarchetypeGroupId=at.newmedialab.lmf \
   -DarchetypeArtifactId=lmf-archetype-webapp 
}}}

After that you will have a new Maven project with a structure like:

{{{
.
|-- pom.xml
`-- src
    |-- main
    |   |-- resources
    |   |   |-- default-config.properties
    |   |   |-- ehcache-db.xml
    |   |   |-- ehcache-lmf.xml
    |   |   |-- logback.xml
    |   |   `-- META-INF
    |   |       |-- beans.xml
    |   |       `-- persistence.xml
    |   `-- webapp
    |       |-- index.jsp
    |       |-- META-INF
    |       |   `-- jetty-web.xml
    |       |-- search
    |       |   `-- test_luke.html
    |       |-- skosjs-extension
    |       |   `-- test.html
    |       |-- solr
    |       |   |-- admin
    |       |   |-- favicon.ico
    |       |   `-- index.jsp
    |       `-- WEB-INF
    |           |-- jetty-web.xml
    |           |-- realm.properties
    |           |-- templates
    |           |   |-- 404.ftl
    |           |   |-- admin.ftl
    |           |   `-- rdfhtml.ftl
    |           `-- web.xml
    `-- test
        `-- resources
            |-- arquillian.xml
            |-- data
            |-- ehcache.xml
            |-- jndi.properties
            |-- logback.xml
            |-- META-INF
            |   |-- beans.xml
            |   `-- test-persistence.xml
            |-- test-config.properties
            `-- WEB-INF
                `-- test-web.xml
}}}

Then, moving to the folder that Maven created, you can start it just by running one of the following commands:

{{{
mvn jetty:run
mvn tomcat6:run
mvn tomcat7:run
}}}

By default it will start your new webapp at http://localhost:8080 

Of course you could customize whatever you need.

= IDE Integration =

For the moment all the actions were performed form the command-line. But Maven is nicely supported by many IDEs:

 * [[http://maven.apache.org/eclipse-plugin.html|Eclipse]]
 * [[http://www.jetbrains.com/idea/features/ant_maven.html|IntelliJ]]
 * [[http://maven.apache.org/netbeans-module.html|Netbeans]]

= Additional documentation =

== Cleaning LMF home directory ==

Any LMF webapp comes with a Maven profile that allows you to clean the folder that LMF uses to store some caches. For doing that you'd need to run:

{{{
mvn clean -Pcleanall
}}}