현재 MyEclipse 내에서 사용중인 Ant 스크립트를 수정하는 중입니다. 명령 행에서 작동합니다. 저는 누구든지 프로젝트를 체크 아웃하고 MyEclipse없이 빌드 할 수 있도록이 작업을 수행하고 있습니다. 내가 겪고있는 문제는 MyEclipse가 배후에서 종속성을 포함한다는 것입니다. 이 작업은 작업 공간의 Ant 구성을보고 환경 설정 대화 상자에서 선택한 라이브러리를 기반으로 클래스 경로를 컴파일하여 수행됩니다. 간단히 말해서, 필자는 MyEclipse의 도움없이 이러한 종속성을 가져 와서 스크립트를 자체적으로 포함시킬만큼 현명한 스크립트를 작성해야합니다. 나에게 두통을주고있다Ant 옵션 작업의 문제점 SSHExec 및 SCP. 클래스 패스 문제?
하는 작업은 sshexec 및 SCP 작업입니다. 이들은 jsch 버전을 실행해야하는 선택적인 ant 작업입니다. MyEclipse의 Ant 클래스 경로에서 jsch를 제거하고 프로젝트 자체 (lib/dev)의 lib 폴더에 추가했습니다. MyEclipse는 SSHExec 클래스가 jsch-0.1.44.jar의 일부인 종속 클래스 인 com.jcraft.jsch.UserInfo
을 찾을 수 없다는 이유로 즉시 불평했습니다.
나는 빌드 스크립트에서 개미의 클래스 경로를 설정하는 방법을 볼 수 없습니다. 나는 스크립트에 path
요소를 추가하는 다음 코드를 가지고 있지만 Ant가 명시 적으로 작업 또는 다른 요소에 연결하지 않는 한이를 사용하지 않는다고 생각하지 않습니다.
<path id="web-jars">
<fileset dir="${web-lib}">
<include name="**/*.jar" />
</fileset>
<fileset dir="${app-lib}"> <!-- this is where jsch resides -->
<include name="**/*.jar" />
</fileset>
</path>
그것은 내가 sshexec 및 SCP 작업을 정의 할 taskdef
를 사용할 필요가 보인다 :
<taskdef name="sshexec" classname="org.apache.tools.ant.taskdefs.optional.ssh.SSHExec"
classpathref="web-jars"/>
은 MyEclipse이 뿌려 "taskdef A class needed by class org.apache.tools.ant.taskdefs.optional.ssh.SSHExec cannot be found: com/jcraft/jsch/UserInfo"
그것은 classpathref, 웹 항아리에 분명합니다. 이 형식이 잘못되었거나 잘못 구성된 taskdef 때문에 스크립트에서 아무 것도 실행할 수 없습니다. 여기
다음은이 문제를 해결할 수 있습니다. http://stackoverflow.com/a/39976060/3499805 – user3499805