2011-09-09 14 views
10

Używam gry jako ramy aplikacji internetowej i uwielbiam ją, ale chciałbym się dowiedzieć, czy istnieje dobry sposób na ogłoszenie pom dla sztuki! aplikacja?Czy istnieje dobry sposób na wykonanie mavenify play! aplikacja ramowa?

Ponieważ pliki źródłowe mają być w specjalnym folderze (nie ma standardu standardowym), a celem nie jest wygenerowanie pliku docelowego, ale pozwolenie na zarządzanie projektem w różnych IDE (Eclipse, Netbeans, .. .)

Byłoby świetnie, gdyby możliwe było połączenie zależności pom.xml z formatem 1.2.X conf/dependencies.yml.

Dzięki.

+0

Jest to moduł zabaw z pewnym wsparciem maven, ale nie próbowałem tego jeszcze: [Maven moduł] (http://www.playframework.org/modules/maven) – javierhe

Odpowiedz

3

Tak, istnieje moduł play maven. Musisz więc zainstalować "play install maven", a następnie wywołać "play mvn: init". następnie za każdym razem, gdy aktualizujesz, wywołaj "play mvn: up". Integracja nie jest bardzo dobra, oznacza to, że ma jeden sposób na uzależnienie. i nie wszystkie komendy maven obsługiwane. Ale playfremwork2 będą oparte całkowicie na SBT (aka Maven na Scala)

+4

Nie wiem, czy to działało, kiedy zostało napisane, ale dziś nie działa z Play 2.0 - mam nadzieję, że znalazłem rozwiązanie! – PlexQ

5

Istnieje kilka różnych wtyczek, które obsługują to:

  1. AbsurdHero na Play Pure Maven Plugin. Umożliwia to konwertowanie plików scala.html do scala, łączenie zasobów statycznych z katalogiem docelowym oraz automatyczne monitorowanie plików źródłowych i ponowne ładowanie na serwer testowy. Nie obsługuje on tworzenia pliku jar/war/zip, który można wdrożyć. Nie wymaga to zainstalowania Play na komputerze, więc będzie działał z serwerem CI, chociaż musisz pobrać słoik wtyczek na maszynę CI, na przykład używając lokalnego repozytorium Maven, takiego jak Nexus.
  2. The Nanoko play-2 maven plugin. Jeszcze go nie używałem - mówi, że jest opakowaniem w ramce gry, więc wymaga zainstalowania go na maszynie budującej. Obsługuje tworzenie wojen i debugowanie lub uruchamianie aplikacji.

Dowolne inne? Chciałbym usłyszeć inne opcje?

+1

Kolejny plugin, który posiada wsparcie dla opakowań War: https://code.google.com/p/play2-maven-plugin – adelarsq

7

Uaktualniona odpowiedź na to pytanie, grę zainstalować nie działa z luzem 2

miałem tylko mavenify aplikację Play 2. Aby uzyskać te informacje, użyłem play2-maven-plugin i sbt-pom-reader.

Użyłem sbt-pom-reader, aby zachować funkcję ponownego ładowania, która nie jest jeszcze obsługiwana przez wtyczkę play2-maven.

ten sposób trzeba skonfigurować swój projekt 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. 

Każdy z plików powinny mieć następującą treść.

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 

projekt/build.Właściwości:

sbt.version=0.13.0 

projekt/build.scala:

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

projekt/plugins.sbt:

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

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

Teraz można użyć Maven dla buduje i SBT dla rozwoju gorącym przeładować.

Powiązane problemy