如何通过scp将指定文件上传到服务器
主要使用scp
任务,需要先下载jsch
的jar包,例子如下:123<target name="scp.war"> <scp localFile="a.war" remoteTofile="remoteuser@remoteHost:/path/to/a.war" password="password"/></target>
然后运行:1ant -lib jsch-xxx.jar scp.war
正常会报一个Unknown host
的错误,主要是因为目标机器在本机上没有finger,可通过以下方法解决:利用某台linux服务器,向目标机器发送ssh
登录命令,然后在~/.ssh
目录下把known_hosts
文件中关于目标机器的信息串copy到本地的用户目录下的.ssh
目录中的known_hosts
文件中,windows下创建.ssh
目录需要在命令行执行mkdir .ssh
命令
利用pom.xml做依赖管理,使用ant下载依赖包
背景:构建服务器无法连通外网,也没有maven的私服,但又想使用pom.xml做包依赖管理
解决思路:通过maven-ant-tasks
把依赖包下载到项目里
具体方法:
- 下载
maven-ant-tasks.jar
放到本地,具体下载地址请见 http://maven.apache.org/ant-tasks/ - 在
build.xml
中引入相关task12345678910111213141516171819202122232425262728293031323334<project xmlns:artifact="antlib:org.apache.maven.artifact.ant"><property name="maven-ant-jar.path" value="path/to/maven-ant-tasks.jar"/><path id="maven-ant-tasks.classpath" path="${maven-ant-jar.path}"/><typedef resource="org/apache/maven/artifact/ant/antlib.xml"uri="antlib:org.apache.maven.artifact.ant"classpathref="maven-ant-tasks.classpath"/><!-- usescope 属性有包含关系,关系如下:compile - Includes scopes compile, system and providedruntime - Includes scopes compile and runtimetest - Includes scopes system, provided, compile, runtime and test--><artifact:dependencies filesetId="dependency.main.fileset" usescope="runtime"><pom file="pom.xml"/></artifact:dependencies><!-- scopes属性没有包含关系,需要显式指定包含的范围 --><artifact:dependencies filesetId="dependency.test.fileset" scopes="test"><pom file="pom.xml"/></artifact:dependencies><target name="jars.update"><copy todir="${lib.main.dir}"><fileset rerid="dependency.main.fileset"/><mapper type="flatten"/></copy><copy todir="${lib.test.dir}"><fileset rerid="dependency.test.fileset"/><mapper type="flatten"/></copy></target></project>