2010-07-27 7 views
3

J'apprends le langage circonflexe et j'utilise maven avec idée pour la première fois. Je m'attendais à ce que mes sources dans src se compileront au répertoire build. Mais ça n'arrive pas. Et si je précise sourceDirectory et outputDirectory comme ${basedir}/src ou ${project.basedir}/build je reçois des inspections d'IntelliJ idée que ces dossiers n'existe pas (sic!)Comment compiler des sources scala via l'intégration de maven dans intellij idea?

<?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>C2Probe</groupId> 
    <artifactId>C2Probe</artifactId> 
    <version>1.0</version> 

    <build> 
     <sourceDirectory>src</sourceDirectory> 
     <outputDirectory>build</outputDirectory> 

     <plugins> 
      <plugin> 
       <groupId>ru.circumflex</groupId> 
       <artifactId>maven-cx-plugin</artifactId> 
       <version>${cx.version}</version> 
       <executions> 
        <execution> 
         <id>configure</id> 
         <phase>compile</phase> 
         <goals> 
          <goal>cfg</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
    <properties> 
     <cx.version>1.1</cx.version> 
     <orm.connection.driver>org.postgresql.Driver</orm.connection.driver> 
     <orm.connection.url>jdbc:postgresql:mydb</orm.connection.url> 
     <orm.connection.username>myuser</orm.connection.username> 
     <orm.connection.password>mypass</orm.connection.password> 
    </properties> 
    <dependencies> 
     <dependency> 
      <groupId>ru.circumflex</groupId> 
      <artifactId>circumflex-orm</artifactId> 
      <version>${cx.version}</version> 
     </dependency> 
    </dependencies> 
</project> 

Que dois-je faire pour compiler mes sources?

Répondre

3
<build> 
    <sourceDirectory>src/main/scala</sourceDirectory> 

     <plugins> 
      <plugin> 
       <groupId>org.scala-tools</groupId> 
       <artifactId>maven-scala-plugin</artifactId> 
       <version>2.4</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>compile</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <mainClass>greet.Main</mainClass> 
       </configuration> 
      </plugin> 
     </plugins> 
</build> 

Merci http://www.nearinfinity.com/blogs/bryan_weber/scala_and_maven_with_maven.html pour un bon tutoriel.

+2

Maintenant, vous devriez utiliser le [scala-maven-plugin] (https://github.com/davidB/scala-maven-plugin). – schmmd

2

La convention de Maven est que les classes compilées sont mises en target/classes. À moins d'avoir une très bonne raison de le faire différemment, il vaut mieux (et beaucoup moins douloureux) s'en tenir à la convention.

+0

Est-ce que la programmation sur scala est une bonne raison ou je devrais mettre scala soursces dans src/main/java? Et si je suis cette convention que je dois supprimer les balises "sourceDirectory" et "outputDirectory"? (Je l'ai fait et a obtenu "Rien à compiler - toutes les classes sont à jour" encore une fois). – Jeriho

+0

@Jeriho, je n'ai aucune expérience avec Scala, mais comme AFAIK nécessite un compilateur différent pour la source Scala, je les mettrais sous 'src/main/scala'. Vous devrez peut-être configurer explicitement ce répertoire source dans Maven. –