archetype-resources.pom.xml Maven / Gradle / Ivy
#set( $D = '$' ) <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>bundle</packaging> <name>${artifactId} OSGi Bundle</name> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.osgi.core</artifactId> <version>1.4.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>2.2.0</version> <extensions>true</extensions> <configuration> <instructions> <Bundle-Activator>${package}.Activator</Bundle-Activator> </instructions> </configuration> </plugin> </plugins> </build> <profiles> <profile> <id>build-for-felix</id> <dependencies> <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.main</artifactId> <version>3.0.7</version> <scope>provided</scope> </dependency> <!-- To include a shell: <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.gogo.shell</artifactId> <version>0.6.1</version> </dependency> --> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.6</version> <executions> <execution> <id>compile</id> <phase>package</phase> <goals> <goal>run</goal> </goals> <configuration> <target> <pathconvert property="plugins.jars" pathsep="${D}{path.separator}"> <path refid="maven.runtime.classpath"/> <map from="${D}{project.build.directory}${D}{file.separator}classes" to=""/> </pathconvert> <pathconvert pathsep=" " property="bundles"> <path path="${D}{plugins.jars}"/> <mapper> <chainedmapper> <flattenmapper/> <globmapper from="*" to="file:modules/*" casesensitive="no"/> </chainedmapper> </mapper> </pathconvert> <propertyfile file="${D}{project.build.directory}/config.properties"> <entry key="felix.auto.start" value="${D}{bundles} file:modules/${D}{project.build.finalName}.jar"/> <entry key="org.osgi.framework.bootdelegation" value="*"/> </propertyfile> <copy file="${D}{maven.dependency.org.apache.felix.org.apache.felix.main.jar.path}" tofile="${D}{project.build.directory}/felix.jar"/> </target> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.2</version> <executions> <execution> <id>create-executable-jar</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <descriptors> <descriptor>${D}{basedir}/src/main/assembly/felix.xml</descriptor> </descriptors> <finalName>${D}{project.build.finalName}</finalName> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>run-on-felix</id> <dependencies> <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.main</artifactId> <version>3.0.7</version> <scope>provided</scope> </dependency> <!-- org.apache.felix:org.apache.felix.gogo.shell:0.6.1 useless from Maven since stdin is swallowed --> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.6</version> <configuration> <target> <property name="vm.args" value=""/> <pathconvert property="plugins.jars" pathsep="${D}{path.separator}"> <path refid="maven.runtime.classpath"/> <map from="${D}{project.build.directory}${D}{file.separator}classes" to=""/> </pathconvert> <makeurl property="urls" separator=" "> <path path="${D}{plugins.jars}"/> <path location="${D}{project.build.directory}/${D}{project.build.finalName}.jar"/> </makeurl> <propertyfile file="${D}{project.build.directory}/run.properties"> <entry key="felix.auto.start" value="${D}{urls}"/> <entry key="felix.auto.deploy.action" value="uninstall,install,update,start"/> <entry key="org.osgi.framework.storage" value="${D}{project.build.directory}${D}{file.separator}felix-cache"/> <entry key="org.osgi.framework.bootdelegation" value="*"/> </propertyfile> <makeurl property="run.properties.url" file="${D}{project.build.directory}/run.properties"/> <java fork="true" jar="${D}{maven.dependency.org.apache.felix.org.apache.felix.main.jar.path}"> <sysproperty key="felix.config.properties" value="${D}{run.properties.url}"/> <jvmarg line="${D}{vm.args}"/> </java> </target> </configuration> </plugin> </plugins> </build> </profile> </profiles> </project>