Projet

Général

Profil

MAY Maven Standalone Setup » Historique » Révision 5

Révision 4 (Anonyme, 01/10/2014 16:08) → Révision 5/18 (Anonyme, 02/10/2014 11:20)

h1. SpeADL MAY Maven SetUp 

 It is possible to use maven to generate code so that Eclipse is not needed anymore. 
 For example, one possible workflow is to use another IDE and executing <pre>mvn generate-sources</pre> after modifying the speadl file. 

 In order to do that, use the following POM file: 

 <pre> 
 <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>XXX</version> 

	 <properties> 
		 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
		 <xtext-version>2.6.2</xtext-version> 
		 <may-version>3.3.1</may-version> 
		 <may-lib-version>3.3.0</may-lib-version> 
	 </properties> 

	 <dependencies> 
		 <dependency> 
			 <groupId>fr.irit.smac.lib.may</groupId> 
			 <artifactId>common-components</artifactId> 
			 <version>${may-lib-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> 
 </pre> 

 h2. Possible Issues issues and Resolutions resolutions 

 If Maven in Eclipse gives the POM file contains the following errors in Eclipse: error: 

  Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-clean-plugin:2.5:clean org.eclipse.xtext:xtext-maven-plugin:2.6.0:generate (execution: default, phase: generate-sources) 

 and 

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

 When hovering on In the error, choose Overview view of the following quickfix: 

  Permanently mark goal clean in pom.xml as ignored as ignored in Eclipse build. 

 file, click on the error and select the Quick Fix named: 

  Permanently mark goal generate in pom.xml as ignored as ignored in Eclipse build. ignored. 

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