Project

General

Profile

Building » History » Revision 6

Revision 5 (Sergey Smolov, 01/22/2020 04:37 PM) → Revision 6/7 (Sergey Smolov, 01/22/2020 04:39 PM)

h1. Building 

 {{toc}} 

 h2. Prerequisites 

 To build the _Fortress_ library from sources, following components must be installed: 
 # *Git* 
 # *Java Development Kit (JDK) 1.11* or higher (use "AdoptOpenJDK":https://adoptopenjdk.net/ for Windows and *openjdk-11-jdk* for Ubuntu Linux based OS) 

 For project building we use " *Gradle* ":http://gradle.org system.  
 You can either install it, or use wrapper scripts (we use "Gradle 4.10.3":https://docs.gradle.org/4.10.3/release-notes.html in scripts). 
 Two Gradle wrapper scripts are included in the project repository: one for Linux-based OS (*gradlew*), another for Windows OS (*gradlew.bat*). To make the guide uniform, a "gradle" acronym will be used in the following examples. 

 h3. Access to Nexus 

 For some cases an access to "ISP RAS Nexus":https://forge.ispras.ru/nexus local repository server may be required via Fortress building. Ask your ISP RAS colleagues for login and password and store them either in _REPO_USER and _REPO_PASSWORD environment variables, or in non-versioned by Git *gradle-local.properties* file of the following format: 
 <pre> 
 repoUser=<write your login here> 
 repoPassword=<write your password here> 
 </pre> 

 h2. Get the project source code 

 Clone the project's Git repository 
 <pre><code class="shell"> 
 git clone --recursive https://forge.ispras.ru/git/solver-api.git fortress 
 cd fortress 
 </code></pre> 

 h2. Building from command line 

 To list all Gradle commands run: 
 <pre><code class="shell"> 
 gradle tasks 
 </code></pre> 

 To compile both main and test classes run: 
 <pre><code class="shell"> 
 gradle assemble 
 </code></pre> 

 To run all unit tests run: 
 <pre><code class="shell"> 
 gradle test 
 </code></pre> 


 h2. Building from "Eclipse IDE":https://www.eclipse.org/ide/ Eclipse IDE 

 * Generate the # Install "Buildship":https://marketplace.eclipse.org/content/buildship-gradle-integration Gradle integration plugin for Eclipse IDE project and classpath files with "Gradle":https://gradle.org: 
   <pre>$ ./gradlew eclipse</pre> (if Gradle support has not provided by the IDE already). 
 * # Create a workspace located @init.gradle@ file in the $HOME/.gradle directory with @fortress@ 
   - Use and write the menu item @File/Switch Workspace...@ following to it: 
 <pre> 
 allprojects 
 { 
   - Browse the directory apply plugin: 'eclipse' 

   it.eclipse 
   { 
     classpath.downloadJavadoc = true 
   } 
 * } 
 </pre> 
 # Import an existing project called @fortress@ Fortress sources into the workspace 
   - Eclipse workspace: 
 * Use the menu item @File/Import...@ 
   - "File/Import...". 
 * Choose @General/Existing Projects into Workspace@ 
   - "Gradle/Gradle Project". 
 * Select the @fortress@ folder "fortress" directory as the root directory 
   - directory, press "Next". 
 * Select the @fortress@ "Gradle wrapper (recommended)" import option. 
 * Press the "Finish" button: the project located will be opened in this directory 
   - Press the @Finish@ button Eclipse IDE. 

 h2. Building from "IntelliJ IDEA":https://www.jetbrains.com/idea/ IntelliJ IDEA 

 # From Welcome menu select "Import project". 
 # Select @fortress@ "fortress" directory, then press "OK". 
 # From "Import project" menu select "Import project from external model" -> Gradle, then press "Finish".