2011-01-13 6 views
0

SCP를 통해 서버에 아티팩트를 배포하기 위해이 프로필을 만들었습니다. 나는 Ant의 scp 작업이 선택 사항임을 알고 있으므로 종속성을 추가했습니다. 내가 프로필을 실행할 때Maven 플러그인 종속성이 무시됩니다.

<profiles> 
     <profile> 
      <id>remote-deploy</id> 
      <build> 
       <plugins> 
        <plugin> 
         <artifactId>maven-antrun-plugin</artifactId> 
         <executions> 
          <execution> 
           <id>scp</id> 
           <phase>install</phase> 
           <configuration> 
            <tasks> 
             <scp .../> 
             <sshexec .../> 
            </tasks> 
           </configuration> 
           <goals> 
            <goal>run</goal> 
           </goals> 
          </execution> 
         </executions> 
         <dependencies> 
          <dependency> 
           <groupId>org.apache.ant</groupId> 
           <artifactId>ant-jsch</artifactId> 
           <version>1.7.1</version> 
          </dependency> 
          <dependency> 
           <groupId>com.jcraft</groupId> 
           <artifactId>jsch</artifactId> 
           <version>0.1.42</version> 
          </dependency> 
         </dependencies> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 
    </profiles> 

그러나, 나는이 발생했습니다

개미 BuildException와 끝까지 : 문제 : SCP 원인을 작업을 만들거나 입력하는 데 실패했습니다 : 클래스 org.apache을 .tools.ant.taskdefs.optional.ssh.Scp 찾을 수 없습니다. 이것은 Ant의 선택적 구성 요소 중 하나처럼 보입니다. 조치 : 적절한 옵션 JAR 는 당황하지 마십시오 -ANT_HOME \ lib에 년 - IDE Ant 구성 대화 상자

에 있는지 을 확인,이 공통 문제입니다. 가장 일반적인 원인은 JAR이 누락되었습니다.

이것은 버그가 아닙니다. 그것은 구성 문제입니다.

해당 종속성을 다운로드 할 수 없거나 무시할 수 있습니까?

답변

1

Maven (2.2.1)에서 종속성을 다운로드하지 못했습니다. Maven을 버전 3으로 업그레이드 한 후에 발견했습니다. 어떤 이유로 새로운 버전이 플러그인 종속성을 다운로드하고 기적적으로 작동하기 시작했습니다.

이전 버전 Maven 설정에 문제가 있음을 나타냅니다. - pluginRepository이 구성되지 않았습니다. 이 메이븐-2에서 일어나고있는 이유를 설명 할 수있는 받는다는 - antrun - 플러그인 bug entry이있다

0

maven이 jar를 다운로드했을 가능성이 있지만 개미의 classpath에는 없습니다. 목적이 maven을 사용하여 이슈를 배포하는 것이라면 Maven Deploy Plugin을 사용해야합니다. 당신이하는 일은 우회적 인 것처럼 보입니다.

+0

Maven 배포 플러그인은 원격 저장소에 배포하지 않고 원격 서버에 배치 할 수있는 옵션이 아닙니다. 일부 서버 특정 유닉스 명령을 실행하십시오. –

0

, 그들은 또한 멀티 모듈에서 workarounds

을 설명 빌드 받는다는-antrun을 구성하는 여러 리딩이있는 경우 -plugin, 첫 번째 (?)가 이길 것 같습니다. 나중에 빌드 체인에있는 것들이 이전 폼 (pom)의 antrun 구성을 재사용하므로 다른 것들을 놓치게됩니다.

내 문제의 경우 Maven-2와의 대안 대신에 Maven-3 (문제가 해결 된 것 같습니다)을 사용하기로 선택했습니다. 이것은 빌드의 추가적인 장점을 가지고 있습니다. 이제는 10 분 전에 6 분이 걸렸습니다. 그러나 Maven-3을 사용할 수 없다면 해결 방법을 시도해 보겠습니다.