Skip to content

Commit b7e34ca

Browse files
committed
Use JReleaser
1 parent 16f7b57 commit b7e34ca

File tree

8 files changed

+126
-13
lines changed

8 files changed

+126
-13
lines changed

java/pom.xml

Lines changed: 96 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,26 @@
99
<version>4.5.0</version>
1010
</parent>
1111

12-
<artifactId>messages-cli</artifactId>
12+
<artifactId>cucumber-messages-cli</artifactId>
1313
<version>0.0.1-SNAPSHOT</version>
1414
<packaging>jar</packaging>
15-
<name>Messages CLI</name>
15+
<name>Cucumber Messages CLI</name>
1616
<description>A commandline interface to work with Cucumber Messages</description>
1717
<url>https://github.com/cucumber/messages-cli</url>
1818

1919
<properties>
2020
<java.version>21</java.version>
2121
<project.build.outputTimestamp>1719064372</project.build.outputTimestamp>
2222
<project.Automatic-Module-Name>io.cucumber.messages.cli</project.Automatic-Module-Name>
23-
23+
2424
<cucumber-json-formatter.version>0.3.2</cucumber-json-formatter.version>
2525
<html-formatter.version>22.2.0</html-formatter.version>
2626
<junit-xml-formatter.version>0.11.0</junit-xml-formatter.version>
2727
<testng-xml-formatter.version>0.7.0</testng-xml-formatter.version>
28+
29+
<app.distribution.directory>${project.build.directory}/distributions/app</app.distribution.directory>
30+
<app.main.class>io.cucumber.messages.cli.CucumberMessagesCli</app.main.class>
31+
<app.main.id>cucumber-messages-cli</app.main.id>
2832
</properties>
2933

3034
<scm>
@@ -125,11 +129,99 @@
125129
<configuration>
126130
<archive>
127131
<manifest>
128-
<mainClass>io.cucumber.messages.cli.MessagesCli</mainClass>
132+
<mainClass>${app.main.class}</mainClass>
129133
</manifest>
130134
</archive>
131135
</configuration>
132136
</plugin>
137+
<plugin>
138+
<groupId>org.codehaus.mojo</groupId>
139+
<artifactId>appassembler-maven-plugin</artifactId>
140+
<version>2.1.0</version>
141+
<configuration>
142+
<assembleDirectory>${project.build.directory}/app</assembleDirectory>
143+
<repositoryLayout>flat</repositoryLayout>
144+
<repositoryName>lib</repositoryName>
145+
<programs>
146+
<program>
147+
<mainClass>${app.main.class}</mainClass>
148+
<id>${app.main.id}</id>
149+
</program>
150+
</programs>
151+
</configuration>
152+
<executions>
153+
<execution>
154+
<id>make-distribution</id>
155+
<phase>package</phase>
156+
<goals>
157+
<goal>assemble</goal>
158+
</goals>
159+
</execution>
160+
</executions>
161+
</plugin>
162+
<plugin>
163+
<groupId>org.apache.maven.plugins</groupId>
164+
<artifactId>maven-assembly-plugin</artifactId>
165+
<!-- TODO: Pull up -->
166+
<version>3.7.1</version>
167+
<configuration>
168+
<attach>false</attach>
169+
<appendAssemblyId>false</appendAssemblyId>
170+
<descriptors>
171+
<descriptor>src/main/assembly/assembly.xml</descriptor>
172+
</descriptors>
173+
<outputDirectory>${app.distribution.directory}</outputDirectory>
174+
<workDirectory>${project.build.directory}/assembly/work</workDirectory>
175+
</configuration>
176+
<executions>
177+
<execution>
178+
<id>make-distribution</id>
179+
<phase>package</phase>
180+
<goals>
181+
<goal>single</goal>
182+
</goals>
183+
</execution>
184+
</executions>
185+
</plugin>
186+
<plugin>
187+
<groupId>org.jreleaser</groupId>
188+
<artifactId>jreleaser-maven-plugin</artifactId>
189+
<version>1.21.0</version>
190+
<inherited>false</inherited>
191+
<configuration>
192+
<gitRootSearch>true</gitRootSearch>
193+
<jreleaser>
194+
<project>
195+
<java>
196+
<mainClass>${app.main.class}</mainClass>
197+
</java>
198+
</project>
199+
200+
<release>
201+
<github>
202+
<enabled>false</enabled>
203+
</github>
204+
</release>
205+
206+
<distributions>
207+
<app>
208+
<artifacts>
209+
<artifact>
210+
<path>
211+
${app.distribution.directory}/${project.artifactId}-${project.version}.zip
212+
</path>
213+
</artifact>
214+
<artifact>
215+
<path>
216+
${app.distribution.directory}/${project.artifactId}-${project.version}.tar.gz
217+
</path>
218+
</artifact>
219+
</artifacts>
220+
</app>
221+
</distributions>
222+
</jreleaser>
223+
</configuration>
224+
</plugin>
133225
</plugins>
134226
</build>
135227
</project>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.2.0"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.2.0 https://maven.apache.org/xsd/assembly-2.2.0.xsd">
4+
<id>bin</id>
5+
<formats>
6+
<format>tar.gz</format>
7+
<format>zip</format>
8+
</formats>
9+
<fileSets>
10+
<fileSet>
11+
<directory>${project.basedir}/..</directory>
12+
<includes>
13+
<include>README*</include>
14+
<include>LICENSE*</include>
15+
</includes>
16+
</fileSet>
17+
<fileSet>
18+
<directory>${project.build.directory}/app</directory>
19+
</fileSet>
20+
</fileSets>
21+
</assembly>

java/src/main/java/io/cucumber/messages/cli/MessagesCli.java renamed to java/src/main/java/io/cucumber/messages/cli/CucumberMessagesCli.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import picocli.CommandLine.Command;
55

66
@Command(
7-
name = "messages",
7+
name = "cucumber-messages",
88
mixinStandardHelpOptions = true,
99
headerHeading = "Work with Cucumber messages\n",
1010
versionProvider = VersionProvider.class,
@@ -15,7 +15,7 @@
1515
TestngXmlCommand.class,
1616
}
1717
)
18-
final class MessagesCli {
18+
final class CucumberMessagesCli {
1919

2020
public static void main(String... args) {
2121
var commandLine = createCommandLine();
@@ -25,6 +25,6 @@ public static void main(String... args) {
2525

2626
@SuppressWarnings("InstantiationOfUtilityClass")
2727
static CommandLine createCommandLine() {
28-
return new CommandLine(new MessagesCli());
28+
return new CommandLine(new CucumberMessagesCli());
2929
}
3030
}

java/src/test/java/io/cucumber/messages/cli/CucumberHtmlCommandTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class CucumberHtmlCommandTest {
3636

3737
@BeforeEach
3838
void setup() {
39-
cmd = MessagesCli.createCommandLine();
39+
cmd = CucumberMessagesCli.createCommandLine();
4040
// TODO: Use mocking, but has wrong type. Ask pico CLI for mock with PrintStream.
4141
originalSystemIn = System.in;
4242
originalSystemOut = System.out;

java/src/test/java/io/cucumber/messages/cli/CucumberJsonCommandTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class CucumberJsonCommandTest {
3737

3838
@BeforeEach
3939
void setup() {
40-
cmd = MessagesCli.createCommandLine();
40+
cmd = CucumberMessagesCli.createCommandLine();
4141
// TODO: Use mocking, but has wrong type. Ask pico CLI for mock with PrintStream.
4242
originalSystemIn = System.in;
4343
originalSystemOut = System.out;

java/src/test/java/io/cucumber/messages/cli/MessagesCliTest.java renamed to java/src/test/java/io/cucumber/messages/cli/CucumberMessagesCliTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
import static org.assertj.core.api.Assertions.assertThat;
1212
import static org.junit.jupiter.api.Assertions.assertAll;
1313

14-
class MessagesCliTest {
14+
class CucumberMessagesCliTest {
1515

1616
final StringWriter out = new StringWriter();
1717
final StringWriter err = new StringWriter();
18-
final CommandLine cmd = MessagesCli.createCommandLine();
18+
final CommandLine cmd = CucumberMessagesCli.createCommandLine();
1919

2020

2121
@BeforeEach

java/src/test/java/io/cucumber/messages/cli/JunitXmlCommandTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class JunitXmlCommandTest {
3737

3838
@BeforeEach
3939
void setup() {
40-
cmd = MessagesCli.createCommandLine();
40+
cmd = CucumberMessagesCli.createCommandLine();
4141
// TODO: Use mocking, but has wrong type. Ask pico CLI for mock with PrintStream.
4242
originalSystemIn = System.in;
4343
originalSystemOut = System.out;

java/src/test/java/io/cucumber/messages/cli/TestngXmlCommandTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class TestngXmlCommandTest {
3737

3838
@BeforeEach
3939
void setup() {
40-
cmd = MessagesCli.createCommandLine();
40+
cmd = CucumberMessagesCli.createCommandLine();
4141
// TODO: Use mocking, but has wrong type. Ask pico CLI for mock with PrintStream.
4242
originalSystemIn = System.in;
4343
originalSystemOut = System.out;

0 commit comments

Comments
 (0)