gpt4 book ai didi

java - 在 Maven 变量中获取 UID?

转载 作者:搜寻专家 更新时间:2023-11-01 02:38:58 26 4
gpt4 key购买 nike

我可以在 pom.xml 文件中使用当前用户名和 ${user.name},但是有没有办法获取 uid (userid) ?

我使用 exec-maven-plugin 并向执行添加参数。我尝试了不同的方法(${env.UID}${user.id}$UID),但都不起作用。

我需要它在 docker 中启动一个将文件写入共享目录的进程。如果我不以 -u 参数开头,所有文件都将属于 root
配置如下:

<configuration>
<executable>docker</executable>
<arguments>
<argument>run</argument>
<argument>-u</argument>
<argument>$UID</argument>
<argument>...</argument>
</arguments>
</configuration>

最佳答案

我打算编写一个 Maven 插件来提供 user.id 属性,但后来我没有找到使用标准 java 方法获取用户 ID 的方法。
有两个项目( Java Native AccessJava Native Interface )可以直接访问 native 信息,但到目前为止我还没有找到获取 UID 的方法。

我通过在我的 Dockerfile 中添加 umask 调用解决了我的问题。我强烈建议使用不需要 maven 中的用户 ID 的解决方案。

但是在处理这个问题时我创建了一个 solution对于真正需要这个的其他人。它从系统属性中获取 user.name 属性,然后打开 passwd 文件来搜索 uid。当然,这只适用于类 unix 系统,并且它直接将构建与您的环境结合在一起,因此请明智地使用此解决方案(理想情况下根本不用)。
要使用我的解决方案,请将其添加到您的 pom.xml:

<plugin>
<!-- Plugin only works with unix-like environments, please use it wisely! -->
<groupId>org.rjung.util</groupId>
<artifactId>user-id-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<goals>
<goal>user-id</goal>
</goals>
</execution>
</executions>
</plugin>

关于java - 在 Maven 变量中获取 UID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39083663/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com