2013-03-18 3 views
3

Я хотел бы ввести параметры профиля settings.xml в Java-класс. Я попытался использовать maven-annotation-plugin, но значения пришли как null. Интересно, если это происходит потому, что этот плагин предназначен для MojoInject Maven параметр в Java класс

setting.xml фрагмент

<profiles> 
    <profile> 
     <id>APP_NAME</id> 
     <properties> 
     <test.email>USER_EMAIL</test.email> 
     <test.password>USER_PASSWORD</test.password> 
     </properties> 
    </profile> 
    </profiles> 

В классе

@Parameter(defaultValue = "test.email", readonly = true) 
private String userEmail; 

@Parameter(defaultValue = "test.password", readonly = true) 
private String userPassword; 

ответ

7

Я хотел бы использовать maven-resources-plugin для создания .properties файла и избежать генерации кода.

<build> 
    <resources> 
    <resource> 
     <directory>src/main/resources</directory> 
     <filtering>true</filtering> 
    </resource> 
    </resources> 
<build> 

И создать файл src/main/resources/com/example/your/file.properties:

testMail = ${test.email} 
propertyName = ${maven.variable.name} 

В доступа Java это с:

getClass().getResourceAsStream("/com/example/your/file.properties") 

Чтобы идти дальше, вы можете следить за соблюдением присутствия test.email собственности с maven-enforcer-plugin:

<build> 
    <plugin> 
    <artifactId>maven-enforcer-plugin</artifactId> 
    <executions> 
     <execution> 
     <id>enforce-email-properties</id> 
     <goals> 
      <goal>enforce</goal> 
     </goals> 
     <configuration> 
      <rules> 
      <requireProperty> 
       <property>test.email</property> 
       <message> 
       The 'test.email' property is missing. 
       It must [your free error text here] 
       </message> 
      </requireProperty> 
      </rules> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
</build> 
+0

Я тоже рассматривал это, но всегда есть человеческий фактор, который некоторые разработчики/вкладчики совершают свои личные полномочия на репо. Я, хотя settings.xml будет более безопасным решением –

+0

Я завершил ответ, как вы можете видеть, учетные данные можно установить в 'settings.xml' или в командной строке. – shellholic

+1

+1 для обеспечения соблюдения. Я начну использовать этот плагин. –

1

Вы можете использовать Maven для создания файла Properties и load в своем классе Java.

Смежные вопросы