2011-09-09 7 views
10

Estoy usando play como framework de aplicación web y me encanta, pero me gustaría saber si hay una buena manera de declarar el pom para una obra de teatro. aplicación?¿Hay una buena manera de mavenificar una obra de teatro? aplicación de marco?

Como los archivos de fuentes están destinados a estar en carpetas especiales (no estándar), y que el objetivo no es generar un archivo de destino, sino permitir administrar el proyecto en diferentes IDE (Eclipse, Netbeans, ... .)

Sería grandioso si fuera posible vincular las dependencias pom.xml con el formato específico 1.2.X conf/dependencies.yml.

Gracias.

+0

No es un módulo de juego con un poco de ayuda experta, pero no he probado todavía: [maven-módulo] (http://www.playframework.org/modules/maven) – javierhe

Respuesta

3

Sí, hay un módulo de reproducción de juegos. Entonces debes instalarlo "play install maven" y luego llamar a "play mvn: init". luego, cada vez que lo actualice, llame a "play mvn: up". La integración no es muy buena, significa que es una forma de jugar a la dependencia. y no todos los comandos maven son compatibles. Pero playfremwork2 se basará completamente en SBT (también conocido como experto en Scala)

+4

No sé si funcionó cuando se escribió, pero hoy no funciona con Play 2.0. ¡Espero haber encontrado una solución! – PlexQ

5

Hay algunos plugins diferentes que apoyan esta:

  1. AbsurdHero de Play Pure Maven Plugin. Esto admite la conversión de archivos scala.html a scala, la vinculación de activos estáticos en el directorio de destino y la supervisión de los archivos fuente y la recarga al servidor de prueba de forma automática. No tiene ningún soporte para crear un jar/war/zip que pueda implementar. No requiere que Play se instale en la máquina, por lo que funcionará con un servidor de CI, aunque es necesario que el plugin se conecte a la máquina de CI, por ejemplo, utilizando un repositorio local de Maven como Nexus.
  2. El Nanoko play-2 maven plugin. No he utilizado este todavía: dice que es un envoltorio alrededor del marco de juego, por lo que requiere que Play esté instalado en la máquina de compilación. Admite la construcción de war y la depuración o ejecución de la aplicación.

¿Algún otro? Me interesaría escuchar otras opciones?

+1

Otro complemento que admite paquetes de guerra: https://code.google.com/p/play2-maven-plugin – adelarsq

7

Una respuesta actualizada a esta pregunta como instalar juego no funciona con Play 2

sólo tenía que mavenify una aplicación de Play 2. Para hacer esto, usé play2-maven-plugin y sbt-pom-reader.

Utilicé sbt-pom-reader para mantener la función de recarga en caliente que aún no es compatible con play2-maven-plugin.

Esta es la forma en que usted necesita para configurar su proyecto play2-Maven:

<my-maven-project>/ 
    pom.xml     <- Your maven build 
    build.sbt    <- the sbt Play 2 configuration 
    project/ 
    build.properties  <- the sbt version specification 
    build.scala   <- the sbt build definition 
    plugins.sbt   <- the sbt plugin configuration 

    ..      <- Whatever files are normally in your maven project. 

Cada uno de los archivos deben tener el siguiente contenido.

pom.xml:

<?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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>org.foo</groupId> 
    <artifactId>bar</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>play2</packaging> 
    <name>My mavenified Play 2 application</name> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <play2.version>2.2.1</play2.version> 
     <play2-scala.version>2.10</play2-scala.version> 
     <play2.plugin.version>1.0.0-alpha5</play2.plugin.version> 
     <scala.version>2.10.2</scala.version> 
    </properties> 
    <repositories> 
     <repository> 
      <id>typesafe</id> 
      <name>Typesafe - releases</name> 
      <url>http://repo.typesafe.com/typesafe/releases/</url> 
      <snapshots> 
       <enabled>false</enabled> 
      </snapshots> 
     </repository> 
    </repositories> 
    <dependencies> 
     <dependency> 
      <groupId>org.scala-lang</groupId> 
      <artifactId>scala-library</artifactId> 
      <version>${scala.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.typesafe.play</groupId> 
      <artifactId>play_${play2-scala.version}</artifactId> 
      <version>${play2.version}</version> 
     </dependency> 
     <!-- only if using Java --> 
     <dependency> 
      <groupId>com.typesafe.play</groupId> 
      <artifactId>play-java_${play2-scala.version}</artifactId> 
      <version>${play2.version}</version> 
     </dependency> 
    </dependencies> 
    <build> 
     <sourceDirectory>${basedir}/app</sourceDirectory> 
     <resources> 
      <resource> 
       <directory>${basedir}/conf</directory> 
      </resource> 
      <resource> 
       <directory>${basedir}</directory> 
       <includes> 
        <include>public/**</include> 
       </includes> 
      </resource> 
     </resources> 
     <!--<outputDirectory>target/scala-${play2-scala.version}/classes</outputDirectory>--> 
     <plugins> 
      <plugin> 
       <groupId>com.google.code.play2-maven-plugin</groupId> 
       <artifactId>play2-maven-plugin</artifactId> 
       <version>${play2.plugin.version}</version> 
       <extensions>true</extensions> 
       <dependencies> 
        <dependency> 
         <groupId>com.google.code.play2-maven-plugin</groupId> 
         <artifactId>play2-provider-play22</artifactId> 
         <version>${play2.plugin.version}</version> 
        </dependency> 
       </dependencies> 
       <!-- only if using Java --> 
       <configuration> 
        <mainLang>java</mainLang> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

build.sbt:

play.Project.playJavaSettings //or play.Project.playScalaSettings 

proyecto/construcción.propiedades:

sbt.version=0.13.0 

proyecto/build.scala:

object BuildFromMavenPomSettings extends com.typesafe.sbt.pom.PomBuild 

proyecto/plugins.sbt:

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.1") 

addSbtPlugin("com.typesafe.sbt" % "sbt-pom-reader" % "1.0.1") 

Ahora puede utilizar para Maven construye y SBT para el desarrollo con recarga en caliente.

Cuestiones relacionadas