Karaf settings.xml



目前我们正在使用Apache Karaf v4.2.8作为windows服务安装/运行。

我们使用AWS代码工件作为mvn存储库,这里的问题是令牌只能持续12小时,这意味着每次我们需要使用新令牌时,我们都需要重新启动windows服务/karaf,以便它能够正确地获取令牌并进行身份验证(只有当我们需要安装新功能时才会出现问题)

我错过了什么吗?有没有办法使用环境变量之类的?

Karaf包含maven功能,您可以安装它来管理您的Maven存储库:

karaf@root()> feature:install maven

例如:

karaf@root()> maven:repository-list
== Remote repositories
ID                              │ URL
────────────────────────────────┼───────────────────────────────────────────────────────────────
central                         │ https://repo1.maven.org/maven2/
apache                          │ https://repository.apache.org/content/groups/snapshots-group/
ops4j.sonatype.snapshots.deploy │ https://oss.sonatype.org/content/repositories/ops4j-snapshots/
== Default repositories
ID                      │ URL
────────────────────────┼────────────────────────────────────────────────
system.repository       │ file:/data/servers/apache-karaf-4.3.6/system/
kar.repository          │ file:/data/servers/apache-karaf-4.3.6/data/kar/
child.system.repository │ file:/data/servers/apache-karaf-4.3.6/system/

您可以使用maven:repository-change命令更改任何远程maven存储库的配置。

默认情况下,您的Maven主密码(参见mvn -emp)取自~/.m2/settings-security.xml,但是如果您调用maven:password -emp -p,您可以设置新的主密码,并且Karaf将在下面创建新的settings-security.xml并将您的etc/org.ops4j.pax.url.mvn.cfg指向该文件。例如:

karaf@root()> maven:password -emp -p
Maven security settings will be stored in new file. This file will be used in org.ops4j.pax.url.mvn.security property. Continue? (y/N) y
Master password to encrypt: ********
Encrypted master password: {xxx}
New security settings stored in "/data/servers/apache-karaf-4.3.6/data/cache/bundle52/data/maven-security-settings-1651245247562.xml"

maven-security-settings-1651245247562.xml看起来像这样:

$ cat /data/servers/apache-karaf-4.3.6/data/cache/bundle52/data/maven-security-settings-1651245247562.xml
<?xml version="1.0" encoding="UTF-8"?>
<settingsSecurity>
<master>{xxx}</master>
</settingsSecurity>

etc/org.ops4j.pax.url.mvn.cfg包含两个新属性:

org.ops4j.pax.url.mvn.settings = /data/servers/apache-karaf-4.3.6/data/cache/bundle52/data/maven-settings-1651244980542.xml
org.ops4j.pax.url.mvn.security = /data/servers/apache-karaf-4.3.6/data/cache/bundle52/data/maven-security-settings-1651245247562.xml

第二个包含您的新主密码,第一个是您现有的~/.m2/settings.xml的副本

您可以使用

更改存储库密码:
karaf@root()> maven:repository-change -id central --username test --password test
Maven settings will be updated and org.ops4j.pax.url.mvn.settings property will change. Continue? (y/N) y
New settings stored in "/data/servers/apache-karaf-4.3.6/data/cache/bundle52/data/maven-settings-1651245438306.xml"

maven-settings-1651245438306.xml已经创建,Maven Central现在看起来像这样:

<server>
<username>test</username>
<password>test</password>
<id>central</id>
</server>

您也可以使用加密密码。首先获取它:

karaf@root()> maven:password -ep
Password to encrypt: ****
Encrypted password: {xxx}
You can use this encrypted password when defining repositories and proxies

并使用它:

karaf@root()> maven:repository-change -id central --username test --password '{xxx}'
Maven settings will be updated and org.ops4j.pax.url.mvn.settings property will change. Continue? (y/N) y
New settings stored in "/data/servers/apache-karaf-4.3.6/data/cache/bundle52/data/maven-settings-1651245586888.xml"

多亏了之前创建的主密码,一切都很好:

karaf@root()> maven:repository-list -x
== Remote repositories
ID                              │ URL                                                            │ Username │ Password
────────────────────────────────┼────────────────────────────────────────────────────────────────┼──────────┼─────────
central                         │ https://repo1.maven.org/maven2/                                │ test     │ test

maven-settings-1651245586888.xml包含:

<server>
<username>test</username>
<password>{xxx}</password>
<id>central</id>
</server>

这些命令只是在配置管理和org.ops4j.pax.url.mvnPID上操作。但是他们在下面给你透明的settings.xml处理。

查看关于Karaf Maven命令的文档:https://karaf.apache.org/manual/latest/#_maven_configuration_commands

相关内容

  • 没有找到相关文章

最新更新