Skip to content

Instantly share code, notes, and snippets.

@mkristian
Created July 2, 2013 19:55
Show Gist options
  • Save mkristian/5912562 to your computer and use it in GitHub Desktop.
Save mkristian/5912562 to your computer and use it in GitHub Desktop.
using rake-maven-plugin with jruby/pom.xml
<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>org.jruby</groupId>
<artifactId>jruby</artifactId>
<version>1.7.5.dev</version>
<name><![CDATA[JRuby]]></name>
<packaging>jar</packaging>
<repositories>
<repository>
<id>localrepo</id>
<url>file:./localrepo</url>
</repository>
<repository>
<id>rubygems-releases</id>
<url>http://rubygems-proxy.torquebox.org/releases</url>
</repository>
<repository>
<id>sonatype</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>rubygems-releases</id>
<url>http://rubygems-proxy.torquebox.org/releases</url>
</pluginRepository>
</pluginRepositories>
<scm>
<connection>scm:git:git://github.com/jruby/jruby.git</connection>
<developerConnection>scm:git:ssh://[email protected]/jruby/jruby.git</developerConnection>
<url>http://github.com/jruby/jruby</url>
</scm>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jruby.joni</groupId>
<artifactId>joni</artifactId>
<version>2.0.0</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.github.jnr</groupId>
<artifactId>jnr-netdb</artifactId>
<version>1.1.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.github.jnr</groupId>
<artifactId>jnr-enxio</artifactId>
<version>0.4</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.github.jnr</groupId>
<artifactId>jnr-unixsocket</artifactId>
<version>0.3</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.github.jnr</groupId>
<artifactId>jnr-posix</artifactId>
<version>3.0.1-SNAPSHOT</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.jruby.extras</groupId>
<artifactId>bytelist</artifactId>
<version>1.0.10</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.github.jnr</groupId>
<artifactId>jnr-constants</artifactId>
<version>0.8.4</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.jruby.jcodings</groupId>
<artifactId>jcodings</artifactId>
<version>1.0.10</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.github.jnr</groupId>
<artifactId>jffi</artifactId>
<version>1.2.5</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.github.jnr</groupId>
<artifactId>jnr-ffi</artifactId>
<version>1.0.4</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.11</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.jruby</groupId>
<artifactId>joda-timezones</artifactId>
<version>${tzdata.version}</version>
<type>jar</type>
<scope>${tzdata.scope}</scope>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jzlib</artifactId>
<version>1.1.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.headius</groupId>
<artifactId>invokebinder</artifactId>
<version>1.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<version>4.3.1</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.8.4</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jay</groupId>
<artifactId>yydebug</artifactId>
<version>1.0</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.bsf</groupId>
<artifactId>bsf</artifactId>
<version>1.0</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>nailgun</groupId>
<artifactId>nailgun</artifactId>
<version>0.7.1</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>coro</groupId>
<artifactId>coro-mock</artifactId>
<version>1.0-SNAPSHOT</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>sun.misc</groupId>
<artifactId>unsafe-mock</artifactId>
<version>1.0-SNAPSHOT</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jsr292</groupId>
<artifactId>jsr292-mock</artifactId>
<version>1.0-SNAPSHOT</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>yecht</groupId>
<artifactId>yecht</artifactId>
<version>1.0</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>requireTest</groupId>
<artifactId>requireTest</artifactId>
<version>1.0</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>rake</artifactId>
<version>${rake.version}</version>
<type>gem</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>rspec</artifactId>
<version>${rspec.version}</version>
<type>gem</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>rspec-core</artifactId>
<version>${rspec-core.version}</version>
<type>gem</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>rspec-expectations</artifactId>
<version>${rspec-expectations.version}</version>
<type>gem</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>rspec-mocks</artifactId>
<version>${rspec-mocks.version}</version>
<type>gem</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>diff-lcs</artifactId>
<version>${diff-lcs.version}</version>
<type>gem</type>
<scope>provided</scope>
</dependency>
<!--<dependency>
<groupId>rubygems</groupId>
<artifactId>jruby-launcher</artifactId>
<version>${jruby-launcher.version}</version>
<type>gem</type>
<scope>provided</scope>
</dependency>-->
</dependencies>
<properties>
<project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
<gem.home>${project.build.directory}/rubygems</gem.home>
<gem.path>${project.build.directory}/rubygems</gem.path>
<jruby.plugins.version>1.0.0-beta</jruby.plugins.version>
<anno.sources>${project.basedir}/build/src_gen</anno.sources>
<unsafe.jar>${project.build.directory}/unsafe.jar</unsafe.jar>
<generated.sources>${project.build.directory}/generated-sources</generated.sources>
<maven.build.timestamp.format>yyyy-MM-dd</maven.build.timestamp.format>
<build.date>${maven.build.timestamp}</build.date>
<Constants.java>org/jruby/runtime/Constants.java</Constants.java>
<base.java.version>1.6</base.java.version>
<jruby.test.memory.permgen>512M</jruby.test.memory.permgen>
<tzdata.version>2013c</tzdata.version>
<maven.test.skip>true</maven.test.skip>
<tzdata.scope>provided</tzdata.scope>
<rake.version>10.1.0</rake.version>
<rspec.version>2.12.0</rspec.version>
<rspec-core.version>2.12.2</rspec-core.version>
<rspec-expectations.version>2.12.1</rspec-expectations.version>
<rspec-mocks.version>2.12.2</rspec-mocks.version>
<diff-lcs.version>1.1.3</diff-lcs.version>
<jruby-launcher.version>1.0.18.dev</jruby-launcher.version>
</properties>
<build>
<sourceDirectory>src</sourceDirectory>
<outputDirectory>build/classes/jruby</outputDirectory>
<testSourceDirectory>test</testSourceDirectory>
<defaultGoal>package</defaultGoal>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<executions>
<execution>
<id>properties</id>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>${basedir}/default.build.properties</file>
<file>${basedir}/build.properties</file>
</files>
<quiet>true</quiet>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>add-generated-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${generated.sources}</source>
</sources>
</configuration>
</execution>
<execution>
<id>add-populators</id>
<phase>process-classes</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${anno.sources}</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>jruby-revision</id>
<phase>process-sources</phase>
<goals>
<goal>create</goal>
</goals>
<configuration>
<shortRevisionLength>7</shortRevisionLength>
<buildNumberPropertyName>jruby.revision</buildNumberPropertyName>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>invoker-generator</id>
<phase>process-classes</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<arguments>
<argument>-Djruby.bytecode.version=${base.java.version}</argument>
<argument>-classpath</argument>
<classpath />
<argument>org.jruby.anno.InvokerGenerator</argument>
<argument>${anno.sources}/annotated_classes.txt</argument>
<argument>${project.build.outputDirectory}</argument>
</arguments>
<executable>java</executable>
<classpathScope>compile</classpathScope>
</configuration>
</execution>
<execution>
<id>build jopenssl</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<arguments>
<argument>-q</argument>
<argument>-f</argument>
<argument>ext/openssl/pom.xml</argument>
<argument>package</argument>
</arguments>
<executable>mvn</executable>
<classpathScope>compile</classpathScope>
</configuration>
</execution>
<execution>
<id>build readline</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<arguments>
<argument>-q</argument>
<argument>-f</argument>
<argument>ext/readline/pom.xml</argument>
<argument>package</argument>
</arguments>
<executable>mvn</executable>
<classpathScope>compile</classpathScope>
</configuration>
</execution>
<execution>
<id>install bootstrap gems</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<arguments>
<argument>-Djruby.home=${basedir}</argument>
<argument>-classpath</argument>
<classpath />
<argument>org.jruby.Main</argument>
<argument>-S</argument>
<argument>gem</argument>
<argument>install</argument>
<argument>--force</argument>
<argument>target/rake-${rake.version}.gem</argument>
<argument>target/diff-lcs-${diff-lcs.version}.gem</argument>
<argument>target/rspec-core-${rspec-core.version}.gem</argument>
<argument>target/rspec-expectations-${rspec-expectations.version}.gem</argument>
<argument>target/rspec-mocks-${rspec-mocks.version}.gem</argument>
<argument>target/rspec-${rspec.version}.gem</argument>
<!--<argument>build_lib/jruby-launcher-${jruby-launcher.version}-java.gem</argument>-->
</arguments>
<executable>java</executable>
<classpathScope>compile</classpathScope>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<encoding>utf-8</encoding>
<debug>true</debug>
<verbose>true</verbose>
<fork>true</fork>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
<source>${base.java.version}</source>
<target>${base.java.version}</target>
</configuration>
<executions>
<execution>
<id>anno</id>
<phase>process-resources</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<includes>
<include>org/jruby/anno/FrameField.java</include>
<include>org/jruby/anno/AnnotationBinder.java</include>
<include>org/jruby/anno/JRubyMethod.java</include>
<include>org/jruby/anno/FrameField.java</include>
<include>org/jruby/CompatVersion.java</include>
<include>org/jruby/runtime/Visibility.java</include>
<include>org/jruby/util/CodegenUtils.java</include>
<include>org/jruby/util/SafePropertyAccessor.java</include>
</includes>
</configuration>
</execution>
<execution>
<id>constants</id>
<phase>process-resources</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<includes>
<include>${Constants.java}</include>
</includes>
</configuration>
</execution>
<execution>
<id>default-compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<excludes>
<exclude>${Constants.java}</exclude>
</excludes>
<annotationProcessors>
<annotationProcessor>org.jruby.anno.AnnotationBinder</annotationProcessor>
</annotationProcessors>
<compilerArgs>
<compilerArg>-XDignore.symbol.file=true</compilerArg>
<compilerArg>-J-Duser.language=en</compilerArg>
<compilerArg>-J-Dfile.encoding=UTF-8</compilerArg>
<compilerArg>-J-Xbootclasspath/p:${unsafe.jar}</compilerArg>
<compilerArg>-J-Xmx${jruby.compile.memory}</compilerArg>
</compilerArgs>
</configuration>
</execution>
<execution>
<id>populators</id>
<phase>process-classes</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<includes>
<include>org/jruby/gen/**/*java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>copy-unsafe</id>
<phase>process-resources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>sun.misc</groupId>
<artifactId>unsafe-mock</artifactId>
<version>1.0-SNAPSHOT</version>
<type>jar</type>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}</outputDirectory>
<destFileName>unsafe.jar</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<execution>
<id>unzip native</id>
<phase>process-classes</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<excludes>META-INF,META-INF/*</excludes>
<artifactItems>
<artifactItem>
<groupId>com.github.jnr</groupId>
<artifactId>jffi</artifactId>
<version>1.2.5</version>
<type>jar</type>
<classifier>native</classifier>
<overWrite>false</overWrite>
<outputDirectory>${basedir}/lib</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<execution>
<id>copy bootstrap gems</id>
<phase>process-classes</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>rubygems</groupId>
<artifactId>rake</artifactId>
<version>${rake.version}</version>
<type>gem</type>
<overWrite>false</overWrite>
<outputDirectory>target</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>rubygems</groupId>
<artifactId>rspec</artifactId>
<version>${rspec.version}</version>
<type>gem</type>
<overWrite>false</overWrite>
<outputDirectory>target</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>rubygems</groupId>
<artifactId>rspec-core</artifactId>
<version>${rspec-core.version}</version>
<type>gem</type>
<overWrite>false</overWrite>
<outputDirectory>target</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>rubygems</groupId>
<artifactId>rspec-expectations</artifactId>
<version>${rspec-expectations.version}</version>
<type>gem</type>
<overWrite>false</overWrite>
<outputDirectory>target</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>rubygems</groupId>
<artifactId>rspec-mocks</artifactId>
<version>${rspec-mocks.version}</version>
<type>gem</type>
<overWrite>false</overWrite>
<outputDirectory>target</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>rubygems</groupId>
<artifactId>diff-lcs</artifactId>
<version>${diff-lcs.version}</version>
<type>gem</type>
<overWrite>false</overWrite>
<outputDirectory>target</outputDirectory>
</artifactItem>
<!--<artifactItem>
<groupId>rubygems</groupId>
<artifactId>jruby-launcher</artifactId>
<version>${jruby-launcher.version}</version>
<type>gem</type>
<overWrite>false</overWrite>
<outputDirectory>target</outputDirectory>
</artifactItem>-->
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>de.saumya.mojo</groupId>
<artifactId>rake-maven-plugin</artifactId>
<version>1.0.0-beta-1-SNAPSHOT</version>
<executions>
<execution>
<phase>test</phase>
<goals><goal>rake</goal></goals>
<configuration>
<args>-T</args>
<jrubyJvmArgs>-Djruby.home=${basedir}</jrubyJvmArgs>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>rubygems</groupId>
<artifactId>rake</artifactId>
<version>${rake.version}</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>rspec</artifactId>
<version>${rspec.version}</version>
<type>gem</type>
</dependency>
</dependencies>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>clean-anno-config</id>
<phase>process-classes</phase>
<goals>
<goal>clean</goal>
</goals>
<configuration>
<excludeDefaultDirectories>true</excludeDefaultDirectories>
<filesets>
<fileset>
<directory>${anno.sources}</directory>
<includes>
<include>annotated_classes.txt</include>
</includes>
</fileset>
</filesets>
<failOnError>false</failOnError>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.2</version>
<executions>
<execution>
<id>default-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>org.jruby.Main</mainClass>
</manifest>
</archive>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<id>in_phase_package</id>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<relocations>
<relocation>
<pattern>org.objectweb</pattern>
<shadedPattern>org.jruby.org.objectweb</shadedPattern>
</relocation>
</relocations>
<finalName>jruby</finalName>
<outputDirectory>${basedir}/lib</outputDirectory>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>org.jruby.Main</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
<configuration>
<systemProperties>
<jruby.compat.version>1.9</jruby.compat.version>
<jruby.home>${basedir}</jruby.home>
</systemProperties>
<testFailureIgnore>true</testFailureIgnore>
<argLine>-XX:MaxPermSize=${jruby.test.memory.permgen}</argLine>
<argLine>-Dfile.encoding=UTF-8</argLine>
<includes>
<include>org/jruby/test/MainTestSuite.java</include>
<include>org/jruby/embed/**/*Test*.java</include>
</includes>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src</directory>
<includes>
<include>**/*rb</include>
</includes>
</resource>
<resource>
<directory>src</directory>
<includes>
<include>META-INF/**/*</include>
</includes>
</resource>
<resource>
<directory>${project.basedir}/resources</directory>
<includes>
<include>.empty</include>
</includes>
<targetPath>${tzdata.build.directory}</targetPath>
</resource>
<resource>
<directory>${project.basedir}/resources</directory>
<includes>
<include>${Constants.java}</include>
</includes>
<targetPath>${generated.sources}</targetPath>
<filtering>true</filtering>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>test</id>
<properties>
<maven.test.skip>false</maven.test.skip>
</properties>
</profile>
<profile>
<id>tzdata</id>
<properties>
<tzdata.scope>runtime</tzdata.scope>
</properties>
</profile>
</profiles>
</project>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment