2017-03-20 1 views
0

maven의 프로필 페이지를 읽고 이해하려고 시도했지만, 필자의 필요에 맞게 if-else-context에서 프로필을 어떻게 사용할 수 있는지 알 수 없습니다.Maven : 프로필을 기반으로 cli 명령을 실행하십시오 (else if)

내가 하나가 다음과 같은 코드가 이미 주신 일하고 있어요 프로젝트의 pom.xml 파일 :

<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>com.github.eirslett</groupId> 
       <artifactId>frontend-maven-plugin</artifactId> 
       <version>${frontend-maven-plugin.version}</version> 
        <executions> 
        <execution> 
         <id>npm build</id> 
         <goals> 
          <goal>npm</goal> 
         </goals> 
         <configuration> 
          <arguments>run build</arguments> 
         </configuration> 
        </execution> 
       </executions> 
... 

나는 (의사 코드)

if (profile(debug)){ 
    <arguments>run build-debug</arguments> 
} else { 
    <arguments>run build</arguments> 
} 

방법 같은 것을 구현하고 싶습니다 나는 이것을 maven과 함께 할 수 있습니까?

답변

1

먼저 프로필을 2 개 선언해야합니다. "debug"와 "prod"라고합시다. 해당 매개 변수와 함께 각 프로파일에 전체 플러그인 선언을 작성해야합니다. 같은

뭔가 : 명시 적 프로파일이 설정되어 있지 않은 경우 prod 프로파일이 활성화 될 것

<profiles> 
    <profile> 
    <id>prod</id> 
    <activation> 
     <activeByDefault>true</activeByDefault> 
    </activation> 
     <build> 
      <plugins> 
       <plugin> 
       <groupId>com.github.eirslett</groupId> 
       <artifactId>frontend-maven-plugin</artifactId> 
       <version>${frontend-maven-plugin.version}</version> 
       ... 
       <arguments>run build</arguments> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
    <profile> 
    <id>debug</id> 
     <build> 
      <plugins> 
       <plugin> 
       <groupId>com.github.eirslett</groupId> 
       <artifactId>frontend-maven-plugin</artifactId> 
       <version>${frontend-maven-plugin.version}</version> 
       ... 
       <arguments>run build-debug</arguments> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 

알 수 있습니다. 디버그 프로필을 실행하려면

mvn package -P debug 

빌드 프로파일을 빌드하는 방식이 아니기 때문에 if-else를 사용하여이를 수행 할 수 없습니다.

+0

감사합니다. 이것은 내가 maven 설정을 조금 더 잘 이해할 수있게 도와 주었다. – phip1611

관련 문제