Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,14 @@ jobs:
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} # Cache dependencies based on pom.xml changes
key: ${{ runner.os }}-maven-v2-${{ hashFiles('**/pom.xml') }} # Cache dependencies based on pom.xml changes
restore-keys: |
${{ runner.os }}-maven-
${{ runner.os }}-maven-v2-

# Build the project (compiles and packages the code)
- name: Build the project
run: mvn -B -X -e clean install --file pom.xml --batch-mode --fail-fast
run: mvn -B clean install --file pom.xml --batch-mode --fail-fast -Dgpg.skip=true -Dmaven.deploy.skip=true

# Run tests
- name: Run tests
run: mvn test -B -X -e --file pom.xml --batch-mode --fail-fast
run: mvn test -B --file pom.xml --batch-mode --fail-fast
33 changes: 28 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,18 @@ This project contains the LiquidJava verifier and its API, as well as some examp

You can find out more about LiquidJava in the following resources:

* [Try it](https://github.com/CatarinaGamboa/liquidjava-examples) with GitHub Codespaces or locally
* [VS Code extension for LiquidJava](https://github.com/CatarinaGamboa/vscode-liquidjava)
* [LiquidJava website](https://catarinagamboa.github.io/liquidjava.html)
* [LiquidJava specification examples for the Java standard library](https://github.com/CatarinaGamboa/liquid-java-external-libs)
* [LiquidJava Website](https://catarinagamboa.github.io/liquidjava.html)
* [VS Code Extension (Marketplace)](https://marketplace.visualstudio.com/items?itemName=AlcidesFonseca.liquid-java)
* [VS Code Extension (Source Code)](https://github.com/CatarinaGamboa/vscode-liquidjava)
* [LiquidJava Examples](https://github.com/CatarinaGamboa/liquidjava-examples)
* [LiquidJava External Libraries Examples](https://github.com/CatarinaGamboa/liquid-java-external-libs)
<!-- * [Formalization of LiquidJava](https://github.com/CatarinaGamboa/liquidjava-formalization) - not opensource yet -->

## Getting Started

### VS Code Extension

The easiest way to use LiquidJava is through its [VS Code extension](https://github.com/CatarinaGamboa/vscode-liquidjava), which uses the LiquidJava verifier directly inside VS Code, with error diagnostics and syntax highlighting for refinements.
The easiest way to use LiquidJava is through its [VS Code extension](https://marketplace.visualstudio.com/items?itemName=AlcidesFonseca.liquid-java), which uses the LiquidJava verifier directly inside VS Code, with real-time error diagnostics and syntax highlighting for refinements.

### Command Line

Expand All @@ -41,6 +42,28 @@ Before setting up LiquidJava, ensure you have the following installed:
- Java 20+ - JDK for compiling and running Java programs
- Maven 3.6+ - For building and dependency management

Additionally, you'll need the following dependency, which includes the LiquidJava API annotations:

#### Maven
```xml
<dependency>
<groupId>io.github.rcosta358</groupId>
<artifactId>liquidjava-api</artifactId>
<version>0.0.3</version>
</dependency>
```

#### Gradle
```groovy
repositories {
mavenCentral()
}

dependencies {
implementation 'io.github.rcosta358:liquidjava-api:0.0.3'
}
```

#### Setup

1. Clone the repository: `git clone https://github.com/CatarinaGamboa/liquidjava.git`
Expand Down
170 changes: 135 additions & 35 deletions liquidjava-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,50 +3,150 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>liquidjava</groupId>
<artifactId>liquidjava-umbrella</artifactId>
<version>1.0</version>
</parent>

<groupId>liquidjava-api</groupId>
<groupId>io.github.rcosta358</groupId>
<artifactId>liquidjava-api</artifactId>
<version>0.0.2-SNAPSHOT</version>
<version>0.0.3</version>
<name>liquidjava-api</name>
<description>LiquidJava API</description>
<url>https://github.com/CatarinaGamboa/liquidjava</url>
<packaging>jar</packaging>

<licenses>
<license>
<name>MIT License</name>
<url>https://opensource.org/licenses/MIT</url>
<distribution>repo</distribution>
</license>
</licenses>

<developers>
<developer>
<id>CatarinaGamboa</id>
<name>Catarina Gamboa</name>
<email>CatarinaGamboa@users.noreply.github.com</email>
<url>https://github.com/CatarinaGamboa</url>
</developer>
<developer>
<id>alcides</id>
<name>Alcides Fonseca</name>
<email>alcides@users.noreply.github.com</email>
<url>https://github.com/alcides</url>
</developer>
<developer>
<id>rcosta358</id>
<name>Ricardo Costa</name>
<email>rcosta358@users.noreply.github.com</email>
<url>https://github.com/rcosta358</url>
</developer>
</developers>

<scm>
<connection>scm:git:git://github.com/CatarinaGamboa/liquidjava.git</connection>
<developerConnection>scm:git:ssh://github.com:CatarinaGamboa/liquidjava.git</developerConnection>
<url>https://github.com/CatarinaGamboa/liquidjava/tree/main</url>
</scm>

<build>
<pluginManagement>
<plugins>
<!-- <plugin>
<groupId>fr.inria.gforge.spoon</groupId>
<artifactId>spoon-maven-plugin</artifactId>
<version>3.3</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin> -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>20</source>
<target>20</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>20</source>
<target>20</target>
</configuration>
</plugin>

<!-- Generate source JAR -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>

<!-- Generate Javadoc JAR -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.6.0</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<doclint>none</doclint>
<source>20</source>
</configuration>
</plugin>

<!-- GPG Signing -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<skip>${gpg.skip}</skip>
</configuration>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>

<!-- Skip default deploy -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.1.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>

<!-- Central Publishing Plugin -->
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.9.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<skipPublishing>${maven.deploy.skip}</skipPublishing>
<!-- <autoPublish>true</autoPublish> -->
</configuration>
</plugin>
</plugins>
</build>

<distributionManagement>
<repository>
<id>central</id>
<url>https://central.sonatype.com/api/v1/publisher</url>
</repository>
</distributionManagement>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<javaVersion>20</javaVersion>
<maven.compiler.source>20</maven.compiler.source>
<maven.compiler.target>20</maven.compiler.target>
</properties>
</project>
</project>
4 changes: 2 additions & 2 deletions liquidjava-example/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@
<version>${version.memcompiler}</version>
</dependency>
<dependency>
<groupId>liquidjava-api</groupId>
<groupId>io.github.rcosta358</groupId>
<artifactId>liquidjava-api</artifactId>
<version>0.0.2-SNAPSHOT</version>
<version>0.0.3</version>
</dependency>
</dependencies>
</project>
9 changes: 2 additions & 7 deletions liquidjava-verifier/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -172,9 +172,9 @@
</dependency>

<dependency>
<groupId>liquidjava-api</groupId>
<groupId>io.github.rcosta358</groupId>
<artifactId>liquidjava-api</artifactId>
<version>0.0.2-SNAPSHOT</version>
<version>0.0.3</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.antlr/antlr4 -->
Expand All @@ -199,11 +199,6 @@
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>liquidjava-api</groupId>
<artifactId>liquidjava-api</artifactId>
<version>0.0.2-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>