# Pass Build Name from CLI

### Problem <a href="#problem" id="problem"></a>

When reporting a build to Sealights via Maven from the command line, you need to provide a different build name each time you create a new Build Session ID.

**Sample of JSON configuration file**

{% code overflow="wrap" lineNumbers="true" %}

```
{
  ...
  "buildName": "${BUILD_NUMBER}",
  ...
}
```

{% endcode %}

Instead of updating manually your pom.xml or the JSON configuration file, you have several ways to dynamically update the Build Name parameter passed to Sealights.

### Solutions <a href="#solutions" id="solutions"></a>

#### Maven Parameter from Command line to Sealights plugin <a href="#maven-parameter-from-command-line-to-sealights-plugin" id="maven-parameter-from-command-line-to-sealights-plugin"></a>

When using a variable in the Maven configuration (JSON or pom.xml), you can override its value via -D flag in the command line&#x20;

{% code overflow="wrap" lineNumbers="true" %}

```
mvn clean install -Psealights -DBUILD_NUMBER=3
```

{% endcode %}

**Using a timestamp variable from the command line**

In order to use a timestamp to report the build to Sealights, please prefer to use for example

{% code overflow="wrap" lineNumbers="true" %}

```bash
mvn clean install -Psealights -DBUILD_NUMBER=`date +"%y%m%d_%H%M"`
```

{% endcode %}

&#x20;

#### Timestamp defined as part of the Maven configuration   <a href="#timestamp-defined-as-part-of-the-maven-configuration" id="timestamp-defined-as-part-of-the-maven-configuration"></a>

**Using an timestamp generated by Sealights**

Sealights Java agents supports a specific SL\_Timestamp variable the JSON configuration file to set the Sealights Maven plugin generating automatically a time stamp as a default buildname.\
The default format is `yyyy.MM.dd-hh.mm`.

**Sample of JSON configuration file**

{% code overflow="wrap" lineNumbers="true" %}

```
{
  ...
  "buildName": "SL_Timestamp",
  ...
}
```

{% endcode %}

**Using a timestamp variable in pom.xml**

Maven provides a built-in property called `${maven.build.timestamp}` that provides the time the build was initiated and this can be used in your Sealights profile after wrapping in another property

**Pom.xml with timestamp**

{% code overflow="wrap" lineNumbers="true" %}

```xml
<properties>
    ...
    <timestamp>${maven.build.timestamp}</timestamp>
    <maven.build.timestamp.format>yyyyMMdd_HHmm</maven.build.timestamp.format>
</properties>
```

{% endcode %}

From now on, you can use this property `${timestamp}` either in the Sealights profile directly in the pom.xml or inside the JSON configuration file.

**Sample of JSON configuration file**

```
{
  ...
  "buildName": "${timestamp}",
  ...
}
```

**Sample of profile using timestamp property**

```xml
<configuration>
	...
	<buildSessionIdFile>buildSessionId.txt</buildSessionIdFile>
	<createBuildSessionId>true</createBuildSessionId>
	<appName>MyApp</appName>
	<branchName>master</branchName>
	<buildName>${timestamp}</buildName>
	...
</configuration>
```
