Projet

Général

Profil

Actions

MAY Project Setup » Historique » Révision 53

« Précédent | Révision 53/74 (diff) | Suivant »
Anonyme, 27/05/2014 18:56


Draft version...

SpeADL MAY Project SetUp

Estimated time: 3 minutes

A classic JAVA project to start with...

First, create a java project, choose a name, and click finish.

Then, create a new file with the speadl extension within the src folder:


Using Maven

The next step is to convert your project into a Maven project. To do this, right click on your project / Configure / Convert to Maven Project.
You will be asked to create a new POM file. Just click finish and edit it manually like this:

<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>XXX</groupId>
    <artifactId>XXX</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <may-version>3.2.4</may-version>
    </properties>

    <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.8</version>
                <executions>
                    <execution>
                        <id>add-source</id>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>speadl-gen</source>
                            </sources>
                        </configuration>
                    </execution>
                    <!-- The following is only needed so that speadl files are included in the generated maven artifact -->
                    <execution>
                        <id>add-resource</id>
                        <goals>
                            <goal>add-resource</goal>
                        </goals>
                        <configuration>
                            <resources>
                                <resource>
                                    <directory>${project.build.sourceDirectory}</directory>
                                    <includes>
                                        <include>**/*.speadl</include>
                                    </includes>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>fr.irit.smac.lib.may</groupId>
            <artifactId>common-components</artifactId>
            <version>${may-version}</version>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>fr.irit.smac</id>
            <url>http://www.irit.fr/~Victor.Noel/maven-repos/</url>
        </repository>
    </repositories>
</project>

Using Maven for Code Generation

It is possible to use maven to generate code so that Eclipse is not needed anymore.
One possible workflow for doing that is to use another IDE and executing

mvn generate-sources
after modifying the speadl file.

In order to do that, use the following POM file (which add some things to the previous one):

<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>XXX</groupId>
    <artifactId>XXX</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <xtext-version>2.5.4</xtext-version>
        <may-version>3.2.4</may-version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>fr.irit.smac.lib.may</groupId>
            <artifactId>common-components</artifactId>
            <version>${may-version}</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.8</version>
                <executions>
                    <execution>
                        <id>add-source</id>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>speadl-gen</source>
                            </sources>
                        </configuration>
                    </execution>
                    <!-- The following is only needed so that speadl files are included in the generated maven artifact -->
                    <execution>
                        <id>add-resource</id>
                        <goals>
                            <goal>add-resource</goal>
                        </goals>
                        <configuration>
                            <resources>
                                <resource>
                                    <directory>src/main/java</directory>
                                    <includes>
                                        <include>**/*.speadl</include>
                                    </includes>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-clean-plugin</artifactId>
                <version>2.5</version>
                <executions>
                    <execution>
                        <!-- hack in order for the file not to be removed on clean but only 
                                prior to code generation from xtext-maven-plugin -->
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                        <configuration>
                            <excludeDefaultDirectories>true</excludeDefaultDirectories>
                            <filesets>
                                <fileset>
                                    <directory>speadl-gen</directory>
                                </fileset>
                            </filesets>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.eclipse.xtext</groupId>
                <artifactId>xtext-maven-plugin</artifactId>
                <version>${xtext-version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <languages>
                        <language>
                            <setup>fr.irit.smac.may.speadl.SpeADLStandaloneSetup</setup>
                            <outputConfigurations>
                                <outputConfiguration>
                                    <outputDirectory>speadl-gen</outputDirectory>
                                </outputConfiguration>
                            </outputConfigurations>
                        </language>
                    </languages>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>fr.irit.smac.may</groupId>
                        <artifactId>fr.irit.smac.may.speadl</artifactId>
                        <version>${may-version}</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
</project>

Possible issues and resolutions

Maven Eclipse Error

If Maven in Eclipse gives the following error:

Plugin execution not covered by lifecycle configuration: org.eclipse.xtext:xtext-maven-plugin:2.5.0:generate (execution: default, phase: generate-sources)

In the Overview view of the pom.xml file, click on the error and select the Quick Fix named:

Permanently mark goal generate in pom.xml as ignored.

This will prevent the maven plugin in Eclipse to generate the source code while Eclipse also does it internally.

Project configuration is not up-to-date

You may get an error message saying your project configuration is out of date with your new pom.xml
Update it : right click on your project / Maven / Update Project Configuration... and click Ok.

Mis à jour par Anonyme il y a environ 12 ans · 74 révisions