Skip to content
Snippets Groups Projects
Select Git revision
  • master
  • towards_1.8.0
  • updateTLC
  • 1.1.0-stups
  • 1.0.2-stups
  • 1.0.1-stups
  • 1.0.0-stups
7 results

pom.xml

Blame
  • user avatar
    Markus Alexander Kuppe authored
    [Build]
    4fcc4518
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    pom.xml 12.28 KiB
    <?xml version="1.0" encoding="UTF-8"?>
    <project
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
    	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>tlatoolbox</groupId>
    	<artifactId>parent</artifactId>
    	<name>TLA+ Tools and TLA Toolbox</name>
    	<version>0.0.1-SNAPSHOT</version>
    	<packaging>pom</packaging>
    
    	<organization>
    		<name>Microsoft Research Inria Joint Centre</name>
    		<url>http://msr-inria.inria.fr/</url>
    	</organization>
    
    	<issueManagement>
    		<system>GitHub</system>
    		<url>https://github.com/tlaplus/tlaplus/issues</url>
    	</issueManagement>
    
    	<scm>
    		<connection>scm:git:https://github.com/tlaplus/tlaplus</connection>
    		<developerConnection>scm:git:https://github.com/tlaplus/tlaplus</developerConnection>
    		<tag>HEAD</tag>
    	</scm>
    
    	<modules>
    		<!-- non-OSGi jars -->
    		<module>tlatools/org.lamport.tlatools</module>
    
    		<!-- OSGi based multi invocation worker (model check > 1 spec in a single runtime -->
    		<module>tlatools/org.lamport.tlatools.api</module>
    		<module>tlatools/org.lamport.tlatools.impl.distributed</module>
    		<module>tlatools/org.lamport.tlatools.consumer.distributed</module>
    
    		<!-- bundles -->
    		<module>toolbox/org.lamport.tla.toolbox.rss</module>
    		<module>toolbox/org.lamport.tla.toolbox</module>
    		<module>toolbox/org.lamport.tla.toolbox.jclouds</module>
    		<module>toolbox/org.lamport.tla.toolbox.jnlp</module>
    		<module>toolbox/org.lamport.tla.toolbox.doc</module>
    		<module>toolbox/org.lamport.tla.toolbox.editor.basic</module>
    		<module>toolbox/org.lamport.tla.toolbox.tool.prover</module>
    		<module>toolbox/org.lamport.tla.toolbox.tool.tla2tex</module>
    		<module>toolbox/org.lamport.tla.toolbox.tool.tlc</module>
    		<module>toolbox/org.lamport.tla.toolbox.tool.tlc.ui</module>
    		<module>toolbox/org.lamport.tla.toolbox.product.standalone</module>
    
    		<!-- Junit tests -->
    		<module>toolbox/org.lamport.tla.toolbox.test</module>
    		<module>toolbox/org.lamport.tla.toolbox.tool.tlc.test</module>
    		<module>toolbox/org.lamport.tla.toolbox.tool.tlc.ui.test</module>
    
    		<!-- SWTBot tests -->
    		<module>toolbox/org.lamport.tla.toolbox.uitest</module>
    		<module>toolbox/org.lamport.tla.toolbox.tool.tla2tex.uitest</module>
    		<module>toolbox/org.lamport.tla.toolbox.tool.tlc.ui.uitest</module>
    
    		<!-- features -->
    		<module>tlatools/org.lamport.tlatools.feature</module>
    		<module>toolbox/org.lamport.tla.toolbox.feature.base</module>
    		<module>toolbox/org.lamport.tla.toolbox.feature.editor</module>
    		<module>toolbox/org.lamport.tla.toolbox.feature.jnlp</module>
    		<module>toolbox/org.lamport.tla.toolbox.feature.jclouds</module>
    		<module>toolbox/org.lamport.tla.toolbox.feature.help</module>
    		<module>toolbox/org.lamport.tla.toolbox.feature.prover</module>
    		<module>toolbox/org.lamport.tla.toolbox.feature.tla2tex</module>
    		<module>toolbox/org.lamport.tla.toolbox.feature.tlc</module>
    		<module>toolbox/org.lamport.tla.toolbox.feature.uitest</module>
    		<module>toolbox/org.lamport.tla.toolbox.feature.branding</module>
    		<module>toolbox/org.lamport.tla.toolbox.feature.standalone</module>
    
    		<!-- p2 repository for updates -->
    		<module>toolbox/org.lamport.tla.toolbox.p2repository</module>
    
    		<!-- product related -->
    		<module>toolbox/org.lamport.tla.toolbox.product.product</module>
    
    		<!-- Finally run UI tests on fully built product (AUT) -->
    <!--		<module>toolbox/org.lamport.tla.toolbox.product.uitest</module>-->
    	</modules>
    
    	<!-- tycho requires maven >= 3.0 -->
    	<prerequisites>
    		<maven>3.0</maven>
    	</prerequisites>
    
    	<!-- Minimum tycho version build work with -->
    	<properties>
    		<!-- http://maven.apache.org/general.html#encoding-warning  -->
    		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    
    		<!-- https://wiki.eclipse.org/Tycho/Release_Notes/1.4 -->
    		<tycho-version>1.5.0</tycho-version>
    
    		<!-- no default here -->
    		<tycho.test.vm.argline>-Xmx500m -Xdebug -Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n</tycho.test.vm.argline>
    		<tycho.test.vm.useUiThread>false</tycho.test.vm.useUiThread>
    
            <!-- These properties define a dummy certificate store that is used unless the developer passes overwrites to maven -->
            <!-- see http://stackoverflow.com/a/3620575 for how such an overwrite would look like. -->
      	    <keystore.path>${project.basedir}/../../keystore</keystore.path>
    	    <keystore.alias>msr</keystore.alias>
            <keystore.store.password>secret</keystore.store.password>
            <keystore.key.password>secret</keystore.key.password>
            <!--
              Set to the values below if the signature should include a timestamp. You want this for a release build
              because a timestamp makes sure the signature remains valid after the certificate expired.
              If you activate RFC3161, make sure the machine running the build has sufficient entropy available. Otherwise
              expect to see intermittent hangs when the build attempts to sign a jar. On Linux the haveged and rng-tools
              can help to collect entropy.
              <tsa.flag>-tsa</tsa.flag>
              <tsa.server>http://timestamp.comodoca.com</tsa.server>
    		 -->
            <tsa.flag></tsa.flag>
            <tsa.server></tsa.server>
    
    		<!-- Report into the tlaplus organization at SonarQube. -->
    		<!-- Organizations support reporting different branches. -->
    		<sonar.organization>tlaplus</sonar.organization>
    
    		<!-- Align toolbox.version with the version in
    			 org.lamport.tla.toolbox.product.product.product
    			 product.version. -->
    		<toolbox.version>1.7.3</toolbox.version>
    
    		<!-- This is used in org.lamport.tla.toolbox.product.uitest but
    			has been placed at the top level should it need be referenced
    			in other POMs. This property is only referenced during the AUT
    			unpacking if it is occurring on mac - the AUT unpacks out of
    			the ZIP ok on Linux and Windows-->
    		<jdk-bundle-plugin-version>14.0.1.7</jdk-bundle-plugin-version>
    	</properties>
    
    	<build>
    		<plugins>
    			<!-- Fail the build early and with a clear error message if the Java 11
    				dependency isn't satisfied. https://github.com/tlaplus/tlaplus/issues/278 -->
    		    <plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-enforcer-plugin</artifactId>
    				<version>3.0.0-M2</version>
    				<executions>
    					<execution>
    						<id>enforce-java</id>
    						<goals>
    							<goal>enforce</goal>
    						</goals>
    						<configuration>
    							<rules>
    								<requireJavaVersion>
    									<version>11</version>
    								</requireJavaVersion>
    							</rules>
    						</configuration>
    					</execution>
    				</executions>
    		    </plugin>
    			<!-- enable tycho build extension -->
    			<plugin>
    				<groupId>org.eclipse.tycho</groupId>
    				<artifactId>tycho-maven-plugin</artifactId>
    				<version>${tycho-version}</version>
    				<extensions>true</extensions>
    			</plugin>
    			<!-- Compress Toolbox plugins -->
    			<plugin>
    				<groupId>org.eclipse.tycho.extras</groupId>
    				<artifactId>tycho-pack200a-plugin</artifactId>
    				<version>${tycho-version}</version>
    				<executions>
    					<execution>
    						<id>pack200-pack</id>
    						<goals>
    							<goal>normalize</goal>
    						</goals>
    					</execution>
    				</executions>
    			</plugin>
    			<plugin>
    			<groupId>org.eclipse.tycho</groupId>
    	        	<artifactId>tycho-compiler-plugin</artifactId>
    	        	<version>${tycho-version}</version>
    			    <configuration>
    			    	<source>1.7</source>
    			    	<target>1.7</target>
    					<encoding>UTF-8</encoding>
    			    </configuration>
    			</plugin>
    			<plugin>
    		        <groupId>org.eclipse.tycho</groupId>
    	        	<artifactId>tycho-packaging-plugin</artifactId>
    	        	<version>${tycho-version}</version>
    			    <configuration>
    				    <archive>
    				    	<addMavenDescriptor>false</addMavenDescriptor>
    				    </archive>
    			    </configuration>
    			</plugin>
    			<plugin>
    			    <groupId>org.apache.maven.plugins</groupId>
    			    <artifactId>maven-jarsigner-plugin</artifactId>
    			    <version>1.4</version>
    			        <configuration>
    				        <keystore>${keystore.path}</keystore>
    				        <alias>${keystore.alias}</alias>
    				        <storepass>${keystore.store.password}</storepass>
    				        <keypass>${keystore.key.password}</keypass>
    			           	<verbose>false</verbose>
    			           	<arguments>
    			 			  <!-- Embed a current timestamp in the signed content (file). With this timestamp,
    							the signature of the content remains valid *after* the signing certificate
    							expired. -->
    			              <argument>${tsa.flag}</argument>
    			              <argument>${tsa.server}</argument>
    			            </arguments>
    			        </configuration>
    			        <executions>
    			            <execution>
    			                <id>sign</id>
    			                <goals>
    			                    <goal>sign</goal>
    			                    <goal>verify</goal>
    			                </goals>
    			            </execution>
    			         </executions>
    			</plugin>
    			<!-- Compress Toolbox plugins -->
    			<plugin>
    				<groupId>org.eclipse.tycho.extras</groupId>
    				<artifactId>tycho-pack200b-plugin</artifactId>
    				<version>${tycho-version}</version>
    				<executions>
    					<execution>
    						<id>pack200-pack</id>
    						<goals>
    							<goal>pack</goal>
    						</goals>
    					</execution>
    				</executions>
    			</plugin>
    			<!-- Then, alter p2-metadata to make the .pack.gz
    			artifact visible from other modules -->
    			<plugin>
    				<groupId>org.eclipse.tycho</groupId>
    				<artifactId>tycho-p2-plugin</artifactId>
    				<version>${tycho-version}</version>
    				<executions>
    					<execution>
    						<id>p2-metadata</id>
    						<goals>
    							<goal>p2-metadata</goal>
    						</goals>
    						<phase>package</phase>
    					</execution>
    				</executions>
    				<configuration>
    					<defaultP2Metadata>false</defaultP2Metadata>
    				</configuration>
    			</plugin>
    			<plugin>
    				<groupId>org.eclipse.tycho</groupId>
    				<artifactId>target-platform-configuration</artifactId>
    				<version>${tycho-version}</version>
    				<configuration>
    					<!-- recommended: use p2-based target platform resolver -->
    					<resolver>p2</resolver>
    					<ignoreTychoRepositories>true</ignoreTychoRepositories>
    					<!-- Include the pack200 artifacts in the p2 repository. This increases
    						the size of the p2 repository (jars + pack.gz), but reduces the load on the
    						server hosting the repository as clients download the compressed pack.gz files. -->
    					<includePackedArtifacts>true</includePackedArtifacts>
    					<!-- use existing target platform definition -->
    					<target>
    					 <artifact>
    					    <groupId>tlatoolbox</groupId>
    					    <artifactId>org.lamport.tla.toolbox.product.product</artifactId>
    					    <version>1.4.0-SNAPSHOT</version>
    					    <classifier>TLAToolbox</classifier>
    					 </artifact>
    					</target>
    
    					<!-- Need to specify mininum Java version. This defines what
    					     java.* packages are available during dependency resolution.
    					     Java 1.4, e.g. does not come with "java.security.sasl", a
    					     package that is indirectly referenced by the toolbox (indirectly via
    					     org.apache.mina.core).
    					     see http://dev.eclipse.org/mhonarc/lists/cbi-dev/msg00166.html -->
    		 			<executionEnvironment>JavaSE-11</executionEnvironment>
    
    					<!-- configure the p2 target environments for multi-platform build -->
    					<environments>
    
    						<!-- Linux -->
    						<environment>
    							<os>linux</os>
    							<ws>gtk</ws>
    							<arch>x86_64</arch>
    						</environment>
    
    						<!-- Windows -->
    						<environment>
    							<os>win32</os>
    							<ws>win32</ws>
    							<arch>x86_64</arch>
    						</environment>
    
    						<!-- Mac -->
    						<environment>
    							<os>macosx</os>
    							<ws>cocoa</ws>
    							<arch>x86_64</arch>
    						</environment>
    
    					</environments>
    				</configuration>
    			</plugin>
    		</plugins>
    	</build>
    
    	<!-- pass mac specific SWT properties on ...drum roll... mac -->
    	<profiles>
    		<profile>
    			<id>macosx</id>
    			<activation>
    				<property>
    					<name>os.name</name>
    					<value>Mac OS X</value>
    				</property>
    			</activation>
    			<properties>
    				<!-- On Mac OS X, /tmp is a symbolic link pointing to /private/tmp. Thus, make sure unit tests -->
    				<!-- use the /private/tmp to make path comparison work. -->
    				<!-- See org.lamport.tla.toolbox.spec.SpecTest.testCreateSpecStoreRelativePath() -->
    				<tycho.test.vm.argline>-Dosgi.ws=cocoa -Djava.io.tmpdir=/private/tmp/ -XstartOnFirstThread</tycho.test.vm.argline>
    				<tycho.test.vm.useUiThread>false</tycho.test.vm.useUiThread>
    			</properties>
    		</profile>
    	</profiles>
    </project>