Maven은 SSH를 사용하여 로컬 파일을 원격 서버에 복사합니다.
Maven은 SSH를 사용하여 원격 서버에 복사 할 수있는 로컬 파일을?
maven 구성 파일의 위치를 지정하고 배포 단계가 실행될 때마다 해당 파일 (또는 파일)을 서버에 복사하고 싶습니다.
maven-deploy-plugin을 사용하면 scp를 사용하여 서버에 배포 할 배포 단계를 구성 할 수 있습니다. 문서 에 수행 방법을 설명하는 페이지 가 있습니다.
나는 추가하는 대신 일반 배포를 믿고 있습니다.
기존 Maven 저장소에 배포하고 파일을 원격 서버에 전달하는 경우 다른 답변에서 제안하는대로 scp 작업을 많이합니다.
에서 이 대답 나는 FTP 작업을 구성하는 방법을 설명한는 SCP의 작업은 키 파일 및 암호 속성 을 추가 (분명히 SCP를 위해 FTP에서 작업 이름을 변경)해야합니다 제외하고 거의 동일하다.
간단한 명령 줄로 수동으로 시도 비용 : mvn org.codehaus.mojo:wagon-maven-plugin:1.0:upload -Dwagon.url=scp://username:userpassword@myserver -Dwagon.fromDir=target -Dwagon.includes=*.ear -Dwagon.toDir=/home/elisabetta
두 경우 모두 Wagon 용 SSH 확장을 pom.xml에 추가해야합니다.
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.8</version>
</extension>
</extensions>
Maven을 실행할 수에서 있는 개미 SCP 태스크를 사용하지 않는 이유는 무엇 입니까?
Maven은 일반적인 일반적인 도구가 빌드 프로세스를 보완 할 수있는 도구입니다. 역할 antrun 빌드 단계 를 사용하는 것이 좋습니다. 이 단계에서는 build.xml에서 사용하는 일반 ant 구문을 사용하여 모든 작업을 수행 할 수 있습니다.
마차 - SSH 확장자가있는 메이븐 왜건 플러그인 을 사용 하는 PaoloC 와 동일한 아이디어 이지만 POM 파일에서 구성하고 지정된 단계에서 실행 하면이 예제는 SSH를 사용하여 전쟁 파일을 원격 서버에 복사합니다.
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>upload-to-myserver</id>
<phase>deploy</phase>
<goals>
<goal>upload-single</goal>
</goals>
<configuration>
<fromFile>${project.build.directory}/${project.build.finalName}.war</fromFile>
<url>scp://username@myserver/path</url>
</configuration>
</execution>
</executions>
</plugin>
<!-- other plugins ... -->
</plugins>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.8</version>
</extension>
</extensions>
</build>
<phase>
태그는 선택 사항입니다. 다음 명령을 사용하여 업로드 실행 만 가능합니다.
mvn wagon:upload-single@upload-to-myserver
이 질문이 완전히 새로운 것은 오늘도 상황에 처해 있습니다. 내 목표는 다른 서버를 통해 터널링해야하는 원격 서버에서 파일을 업로드하고 명령을 실행하는 것입니다. 나는 가능성이 있다고 만들었습니다. ant
(여기에서 언급했듯이 maven에서 다시 트리거 될 수 있음)
Ants sshsession
작업은 내부 작업에 사용할 수 있는 터널 만 만듭니다 . 내부 작업은 원격 서버에서 자동으로 실행되지 않지만 터널sshexec
과 함께 작업을 사용하여 수행 할 수 있습니다 . 또한 작업은 이제 터널을 통해 원격 서버로 업로드 할 수 있습니다. 다음은 그 예입니다.scp
<sshsession host="${jumphost}" port="22" username="${user}" password="${password}" trust="true">
<localtunnel lport="${localTunnelPort}" rhost="${targethost}" rport="22"/>
<sequential>
<!-- run a command on the remote server (here mkdir) -->
<sshexec host="localhost" port="${localTunnelPort}" username="${user.param}" password="${password.param}" command="mkdir ${home}/foobar" trust="true" />
<!-- upload a file to the remote server -->
<scp port="${localTunnelPort}" file="test_file.txt" todir="${user.param}:${password.param}@localhost:${home}/foobar/" trust="true" />
</sequential>
</sshsession>
참조 URL : https://stackoverflow.com/questions/909867/maven-copy-local-file-to-remote-server-using-ssh
'ProgramingTip' 카테고리의 다른 글
cmd.exe를 사용할 때 따옴표를 어떻게 처리합니까? (0) | 2020.12.30 |
---|---|
UI의 무단 작업을 숨기거나 수행해야합니까? 아니면 오류가 발생합니까? (0) | 2020.12.30 |
int []를 byte []로 변환하는 방법 (0) | 2020.12.30 |
Mysql이 열을 분할 할 수 있습니까? (0) | 2020.12.30 |
gemspec에서 최소 Ruby 버전을 어떻게 지정합니까? (0) | 2020.12.30 |