Skip to content

Commit b6ee2d4

Browse files
committed
feat: support "-v/--version" to get version of casbin-java-cli
1 parent bad4575 commit b6ee2d4

File tree

6 files changed

+41
-1
lines changed

6 files changed

+41
-1
lines changed

.github/workflows/maven-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
node-version: 20
2929

3030
- name: Install semantic-release and plugins
31-
run: npm install -D semantic-release @semantic-release/changelog @semantic-release/git @semantic-release/github
31+
run: npm install -D semantic-release @semantic-release/changelog @semantic-release/git @semantic-release/github @semantic-release/exec
3232

3333
- name: Run semantic-release
3434
env:

.releaserc.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@
66
["@semantic-release/changelog", {
77
"changelogFile": "CHANGELOG.md"
88
}],
9+
["@semantic-release/exec", {
10+
"prepareCmd": "mvn versions:set -DnewVersion=${nextRelease.version} -DgenerateBackupPoms=false"
11+
}],
12+
["@semantic-release/git", {
13+
"assets": ["pom.xml", "CHANGELOG.md"],
14+
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
15+
}],
916
["@semantic-release/github", {
1017
"assets": [
1118
{

pom.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010

1111
<properties>
1212
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
13+
<maven.compiler.source>1.8</maven.compiler.source>
14+
<maven.compiler.target>1.8</maven.compiler.target>
1315
</properties>
1416

1517
<dependencies>
@@ -46,6 +48,12 @@
4648
</dependencies>
4749

4850
<build>
51+
<resources>
52+
<resource>
53+
<directory>src/main/resources</directory>
54+
<filtering>true</filtering>
55+
</resource>
56+
</resources>
4957
<plugins>
5058
<plugin>
5159
<groupId>org.apache.maven.plugins</groupId>
@@ -71,6 +79,9 @@
7179
<transformers>
7280
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
7381
<mainClass>org.casbin.Client</mainClass>
82+
<manifestEntries>
83+
<Implementation-Version>${project.version}</Implementation-Version>
84+
</manifestEntries>
7485
</transformer>
7586
</transformers>
7687
<finalName>${project.artifactId}</finalName>

src/main/java/org/casbin/Client.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,22 @@ public static String run(String... args) {
2323
return result;
2424
}
2525

26+
if(Objects.equals(commandName, "-v") || Objects.equals(commandName, "--version")){
27+
String version = Client.class.getPackage().getImplementationVersion();
28+
if (version == null) {
29+
// 如果从jar包中无法获取版本号,则尝试从属性文件中读取
30+
try {
31+
Properties properties = new Properties();
32+
properties.load(Client.class.getResourceAsStream("/version.properties"));
33+
version = properties.getProperty("version", "unknown");
34+
} catch (Exception e) {
35+
version = "unknown";
36+
}
37+
}
38+
System.out.println("casbin-java-cli version " + version);
39+
return version;
40+
}
41+
2642
// processing line breaks in parameters
2743
String[] processedArgs = new String[args.length];
2844
processedArgs[0] = args[0];
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
version=${project.version}

src/test/java/org/casbin/ClientTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,11 @@ public void testRBACWithDomainsApi () {
291291
assertEquals(Client.run(new String[]{"deleteRoleForUserInDomain", "-m", "examples/rbac_with_domains_model.conf", "-p", "examples/rbac_with_domains_policy.csv", "alice", "admin", "domain3"}), "{\"allow\":true,\"explain\":null}");
292292
}
293293

294+
@Test
295+
public void testVersion() {
296+
Client.run(new String[]{"-v"});
297+
}
298+
294299

295300
public void resetRBACPolicyFile() {
296301
File file = new File("examples/rbac_policy.csv");

0 commit comments

Comments
 (0)