2009-09-08 5 views
8

내 현재 프로젝트에서는 properties-maven-plugin 또는 buildnumber-plugin과 같은 다른 플러그인 매개 변수에 필요한 일부 플러그인을 사용합니다.플러그인 목표를 다른 플러그인 목표에 바인딩하는 방법

<?xml version="1.0"?> 
<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>mygroup</groupId> 
    <artifactId>myartifact</artifactId> 
    <packaging>pom</packaging> 
    <version>v0</version> 
    <name>myProject</name> 

    <properties> 
      <env>dev</env> 
    </properties> 

    <build> 
     <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>properties-maven-plugin</artifactId> 
      <version>1.0-alpha-2</version> 
      <configuration> 
      <files> 
       <file>${basedir}/configurations/${env}.properties</file> 
      </files> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>initialize</phase> 
        <goals> 
         <goal>read-project-properties</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>buildnumber-maven-plugin</artifactId> 
      <version>1.0-beta-3</version> 
      <executions> 
       <execution> 
        <phase>initialize</phase> 
        <goals> 
         <goal>create</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
      <groupId>com.wakaleo.schemaspy</groupId> 
      <artifactId>maven-schemaspy-plugin</artifactId> 
      <version>1.0</version> 
      <configuration> 
       <databaseType>mysql</databaseType> 
       <database>${database.schema}</database> 
       <host>${database.host}</host> 
       <user>${database.user}</user> 
       <password>${database.pwd}</password> 
       </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

플러그인 목표를 직접 실행하면 초기화 단계에서 바인딩 된 목표 (또는 유효성 검사)가 실행되지 않습니다.

$> mvn schemaspy:schemaspy 

거기인가 :

$> mvn org.codehaus.mojo:properties-maven-plugin:read-project-properties schemaspy:schemaspy 

우리는 속성 플러그인 및 buildNumber 플러그인 그래서 우리는 입력 할 수있는 모든 받는다는 명령에 대한 실행해야한다는 것을 말하고 싶은 : 그래서 스키마 스파이를 생성하기 위해 우리는 입력해야 그것을 (스크립트없이) 할 수있는 깨끗한 방법?

답변

6

가장 간단한 방법은 그럼 당신은 단순히 MVN 패키지 같은 것을 실행할 수 있습니다, (이미 다른 두 플러그인 ffor 이런 짓을했는지 특히 같은) 라이프 사이클 단계로 schemaspy 목표를 바인딩하고 세 플러그인을 것 적절한 단계에서 실행됩니다.

특정 상황에서만 schmespy 플러그인을 실행하려면 프로파일에 넣은 다음 mvn package -P schemaspy을 실행하여 활성화하십시오. 이를 달성하기위한 구성은 다음과 같습니다.

<profiles> 
    <profile> 
    <id>schemaspy</id> 
    <plugin> 
     <groupId>com.wakaleo.schemaspy</groupId> 
     <artifactId>maven-schemaspy-plugin</artifactId> 
     <version>1.0</version> 
     <executions> 
     <execution> 
      <phase>package</phase> 
      <goals> 
      <goal>schemaspy</goal> 
      </goals> 
     </execution> 
     </executions> 
     <configuration> 
     <databaseType>mysql</databaseType> 
     <database>${database.schema}</database> 
     <host>${database.host}</host> 
     <user>${database.user}</user> 
     <password>${database.pwd}</password> 
     </configuration> 
    </plugin> 
    </profile> 
</profile> 
+0

생각하지 마십시오. 나는 그것을 좋아한다. 감사합니다. . – noirbizarre

+3

죄송합니다. 그러나 이것은 저에게 도움이되지 않습니다. 목표를 다른 목표에 묶을 수 있습니까? 릴리스 용 브랜칭 컨텍스트에서 플러그인을 사용하여 브랜치 이름을 계산해야합니다. 개발자에게 프로파일을 활성화하고 일반적으로 단순히 'release : branch'를 실행할 때 분기를 생성하기 위해 라이프 사이클 단계를 실행하도록 요청하는 것이 이상 할 것입니다 ... –

관련 문제