2010-03-21 2 views
3

Я использую maven-properties-plugin во время фазы инициализации, чтобы читать кучу свойств из файла свойств.Необходимость принудительного жизненного цикла для выполнения плагина maven?

У меня также есть плагин для причала, настроенный на то, чтобы установить пару свойств проекта, включая те, которые читаются выше, как свойства системы для причала.

Если я бегу результат как

mvn initialize jetty:run-war 

он работает.

Если я просто скажу

mvn jetty:run-war 

он терпит неудачу. Как я могу заставить цель, указанную в командной строке, работать в жизненном цикле, который включает в себя этап инициализации?

ответ

0

Если я только что скажу mvn jetty:run-war, это терпит неудачу.

Это не то, что я испытываю. Если вы посмотрите на документации jetty:run-war цели, вы увидите, что это:

Запускает выполнение фазы жизненного цикла package перед выполнением себя.

Таким образом, все фаз, предшествующих package плюс package сами запускаются и, следовательно, плагины, связанные с ними. И действительно, со следующим POM:

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.stackoverflow</groupId> 
    <artifactId>q2488581</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <name>q2488581 Maven Webapp</name> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.mortbay.jetty</groupId> 
     <artifactId>maven-jetty-plugin</artifactId> 
     <version>6.1.10</version> 
     </plugin> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>properties-maven-plugin</artifactId> 
     <version>1.0-alpha-2</version> 
     <executions> 
      <execution> 
      <phase>initialize</phase> 
      <goals> 
       <goal>read-project-properties</goal> 
      </goals> 
      <configuration> 
       <files> 
       <file>etc/config/dev.properties</file> 
       </files> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

Запуск mvn jetty:run-war производит следующий вывод:

 
$ mvn jetty:run-war 
[INFO] Scanning for projects... 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building q2488581 - Maven Webapp 
[INFO] task-segment: [jetty:run-war] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Preparing jetty:run-war 
[INFO] [properties:read-project-properties {execution: default}] 
[INFO] [resources:resources {execution: default-resources}] 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 0 resource 
[INFO] [compiler:compile {execution: default-compile}] 
[INFO] No sources to compile 
[INFO] [resources:testResources {execution: default-testResources}] 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] skip non existing resourceDirectory /home/pascal/Projects/stackoverflow/q2488581/src/test/resources 
[INFO] [compiler:testCompile {execution: default-testCompile}] 
[INFO] No sources to compile 
[INFO] [surefire:test {execution: default-test}] 
[INFO] No tests to run. 
[INFO] [war:war {execution: default-war}] 
[INFO] Packaging webapp 
[INFO] Assembling webapp[q2488581] in [/home/pascal/Projects/stackoverflow/q2488581/target/q2488581] 
[INFO] Processing war project 
[INFO] Copying webapp resources[/home/pascal/Projects/stackoverflow/q2488581/src/main/webapp] 
[INFO] Webapp assembled in[76 msecs] 
[INFO] Building war: /home/pascal/Projects/stackoverflow/q2488581/target/q2488581.war 
[INFO] [jetty:run-war {execution: default-cli}] 
... 

Как мы можем видеть, properties:read-project-properties вызывается во время initialize фазы (до process-resources, к которому resources:resources связан) как и ожидалось.

Другими словами, я не могу воспроизвести вашу проблему (или, может быть, вы должны быть более конкретными).

+0

Ваш пример - это почти то, что я пытался сделать, и он не работал. Я в недоумении. Я закончил работу по устранению проблемы, внеся изменения в контекст приложения, чтобы он больше не должен был быть системным свойством и полностью разорвал его. – nsayer

1

Следующие работы для меня. Надеюсь это поможет. файл: pom.xml

<profiles> 
    <profile> 
     <!-- mvn -Plocal --> 
     <id>local</id> 
     <build> 
      <defaultGoal>package</defaultGoal> 
      <plugins> 
       <plugin> 
        <groupId>org.mortbay.jetty</groupId> 
        <artifactId>jetty-maven-plugin</artifactId> 
        <executions> 
         <execution> 
          <phase>package</phase> 
          <goals> 
           <goal>run-war</goal> 
          </goals> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 
Смежные вопросы