Артефакт, не использующий указанный домашний каталог

#tomcat8 #artifactory

#tomcat8 #artifactory

Вопрос:

В настоящее время я размещаю Artifactory на Tomcat8/JDK1.8 .

Если я проверю экран информации о системе, я увижу, что файлы записываются в /u01/usr/share/tomcat8/.artifactory/

Однако в конфигурации сервлета в bin/setenv.sh я указал, что домашний каталог Artifactory находится где-то в другом месте:

-DARTIFACTORY_HOME=/u01/opt/artifactory

Затем я обнаружил в документах, что он должен быть в нижнем регистре:

-Dartifactory_home=/u01/opt/artifactory

Я перезагрузил Tomcat после изменений, и целевой путь все еще /u01/usr/share/tomcat8/.artifactory остается. Папка также принадлежит пользователю, запускающему Tomcat.

Почему он не использует указанный домашний каталог?

Ответ №1:

Это кажется немного старым, но для других, которые с этим сталкиваются, вам нужно установить переменную среды ARTIFACTORY_HOME в вашем сценарии запуска Tomcat, а не системную переменную через -D параметр.

Linux

 set ARTIFACTORY_HOME=/pathto/your/artifactory
  

Windows

 "set ARTIFACTORY_HOME=C:path to your/artifactory"
  

Обратите внимание на кавычки для Windows

Системные свойства устанавливаются в командной строке Java с использованием синтаксиса -Dpropertyname=value . Они также могут быть добавлены во время выполнения с помощью System.setProperty(строковый ключ, строковое значение) или с помощью различных методов System.GetProperties().load() . Чтобы получить определенное системное свойство, вы можете использовать System.getProperty(строковый ключ) или System.getProperty(строковый ключ, String def).

Переменные среды устанавливаются в ОС, например, в Linux export HOME=/Users/myusername или в Windows SET WINDIR=C: Windows и т. Д., И, в отличие от свойств, могут не устанавливаться во время выполнения. Чтобы получить определенную переменную среды, вы можете использовать System.getenv(строковое имя).