我正在使用 appassembler
插件成功生成我的应用程序结构。因为我的应用程序是从 init.d
脚本启动的,所以我修改了配置,以便应用程序在 serveruser
而不是 root
下运行:
<generatorConfigurations>
<generatorConfiguration>
<property>
<name>run.as.user.envvar</name>
<value>serveruser</value> <-- Here the user is set -->
</property>
</configuration>
</generatorConfiguration>
</generatorConfigurations>
这在部署到服务器时工作正常,但我希望能够在运行 mvn clean package
后在本地运行应用程序。在这种情况下,它会尝试 su
(切换用户)到我的本地计算机上不存在的 serveruser
。对此有什么最佳实践吗?
最终目标是能够:
- 本地构建并通过生成的脚本运行
- 打包相同的生成项目结构,部署它并从那里运行
最佳答案
我当前的解决方案是提供Maven配置文件。如果设置了 local
配置文件,则该属性为空,并且未设置 run.as.user.envar
,因此启动脚本会在当前用户下启动。
如果未设置配置文件,则会设置默认配置文件,这会设置生产用户,因此无法在本地启动它,但您可以在服务器上启动。
虽然不是 100% 但有效。
关于java - 本地运行时的 Appassembler `run.as.user.envvar`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34856125/