Войдите в систему под именем пользователя в пользовательском архетипе maven

Что такое системное свойство, такое как ${user}, которое я могу использовать для получения имени пользователя, создавшего проект, используя мой собственный архетип maven, аналогично использованию заполнителей, таких как ${package}, ${artifactId}? Я хочу использовать это значение в одном из файлов свойств сгенерированного проекта.

Из того, что я нашел в онлайн-источниках, пробовал следующее, но ничего не работает ${user}, ${user.name}, ${username} и ${ENV.user}


person pallavi    schedule 13.03.2019    source источник
comment
Что именно вы подразумеваете под пользователем? Активный пользователь в операционной системе?   -  person J Fabian Meier    schedule 13.03.2019
comment
Да, активный пользователь в ОС, который в моем случае также является пользователем, запустившим команду mvn archetype:generate.   -  person pallavi    schedule 13.03.2019


Ответы (2)


Ты можешь использовать

<build>
 <plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
      <execution>
        <phase>validate</phase>
        <goals>
          <goal>run</goal>
        </goals>
        <configuration>
          <tasks>
            <echoproperties />
          </tasks>
        </configuration>
      </execution>
    </executions>
  </plugin>
 </plugins>
</build>

чтобы вывести доступные свойства на консоль.

person J Fabian Meier    schedule 13.03.2019
comment
Я хочу заменить некоторые заполнители в файлах свойств сгенерированного проекта maven на пользовательский архетип с именем пользователя. - person pallavi; 13.03.2019
comment
Я постарался дать вам возможность узнать названия всех свойств, тем самым найдя то имущество, которое вы ищете. - person J Fabian Meier; 13.03.2019
comment
Спасибо за это. Но все эти свойства, похоже, недоступны для архетипа maven. Как я уже упоминал в вопросе, я уже пробовал ${user.name}, но, похоже, не работает. - person pallavi; 13.03.2019

Чтобы получить текущее имя пользователя, вы можете попробовать следующее:

<requiredProperty key="username">
    <defaultValue>${package.getClass().forName("java.lang.System").getProperty("user.name")}</defaultValue>
</requiredProperty>
person Tiemo Vorschütz    schedule 04.03.2021