2010-11-18 2 views
3

У меня есть проект Maven для военной упаковки, в котором у меня есть файлы свойств Java, называемые myapp.properties. В этом файле свойств хранятся некоторые параметры, например параметры подключения к базе данных, которые будут использоваться webapp.Различные файлы, которые будут упакованы в военном проекте Maven

  1. В среде непрерывной интеграции или в моей среде разработки я хочу установить некоторые параметры тестирования в myapp.properties для подключения к моей тестовой базе данных, например.
  2. В то же время я хочу оставить эти параметры пустыми в своем последнем военном пакете, чтобы пользователи могли добавлять эти значения самостоятельно во время развертывания в свою среду. Окончательный пакет войны должен быть артефактом сборки, созданным в среде непрерывной интеграции.

По существу, есть две версии файла myapp.properties, которые я хочу использовать в разных случаях. Мой вопрос в том, каков способ Maven решить эту проблему? Я использую Eclipse + WTP + m2eclipse в своей среде разработки, и я надеюсь, что решение может хорошо работать вместе с моими инструментами разработки.

ответ

4

Вы можете посмотреть на этот блог: http://blog.jayway.com/2010/01/21/one-artifact-with-multiple-configurations-in-maven/

Они строят различные военные-файлы и использовать различные классификатор (вместо разных профилей). Я не уверен, что это путь maven, но он работает для некоторых моих проектов.

0

я хотел бы попробовать с

pom.xml для вашего проекта (или родительском ПОМ)

 <build> 
      ... 
     <resource> 
      <directory>src/main/resources</directory> 
      <includes> 
       <include>**/*.properties</include> 
      </includes> 
      <filtering>true</filtering> 
     </resource> 
     ... 
     </build> 

в свойствах файла (ов), например,

db.url=${db.url} 

и в вашем settings.xml (см http://maven.apache.org/settings.html#Profiles)

<db.url>jdbc:mysql://localhost:3306/testdb</db.url> 

в зависимости от стадии развития (локальный, строить сервер и т.д.), вы можете использовать различные db.url ЗНАЧЕНИЯ

это не оставит свойство db.url пустым, но каждый раз, когда вы упаковываете артефакт, вы не хотите, чтобы он оставался пустым, не так ли?

+0

Использование механизма профилей Maven. Тем не менее, в моей среде CI мне нужно построить как тестовую войну для тестирования, так и производственную войну, как результат, если тестирование хорошее. В этом случае кажется, что я не могу использовать другой профиль, чтобы отличать их в одной и той же среде, и вам нужно построить два артефакта для разных целей? – nybon

+0

Я не знаю вашего CI env, но у нас есть разные настройки для тестирования, производства (интеграция и т. Д.), В том числе различные профили –

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