2017-01-11 1 views
0

놀랍게도 Java 용 Eclipse (Neon)에서 생성 한 build.xml 파일에는 jar 작업의 호출이 포함 된 요소가 없습니다. 코드 생성의 경우가 종종 그렇듯이 코드 생성을 완전히 재현하거나 회피 할 수 있도록 코드를 사용하고 편집하지 않아야한다고 생각합니다. 생성 된 파일의 주석은 가져 오기를 통해 기능을 확장하여 편집을 피할 수 있음을 나타냅니다. 이클립스 생성 된 개미 스크립트로 jar 파일을 만드는 방법은 무엇입니까?

<!-- WARNING: Eclipse auto-generated file. 
       Any modifications will be overwritten. 
       To include a user specific buildfile here, simply create one in the same 
       directory with the processing instruction <?eclipse.ant.import?> 
       as the first entry and export the buildfile again. --> 

은 내가 export.xml라는 두 번째 파일에 <?eclipse.ant.import?> 요소를 사용할 수있을 것이라고 생각했다. ant 스크립팅에는 빌드 파일 당 하나의 프로젝트가 있어야하므로 첫 번째 프로젝트의 대상에 종속 된 두 번째 프로젝트가 있습니다.

재생성 build.xml은 "가져 오기"가 예상대로 포함되어 있음을 나타냅니다.

<import file="export.xml"/>

불행하게도이 작동하지 않습니다. 명령 줄에서 실행하는 ant을 실행하면 내보내기/jar 프로젝트가 무시되는 결과가 나타나는 것 같습니다.

(7 줄에 중첩 된) 수입 요소와 생성 된 스크립트는 ...

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<project basedir="." default="build" name="ohana1"> 
    <property environment="env"/> 
    <property name="debuglevel" value="source,lines,vars"/> 
    <property name="target" value="1.8"/> 
    <property name="source" value="1.8"/> 
    <import file="export.xml"/> 
    <path id="ohana1.classpath"> 
     <pathelement location="bin"/> 
     <pathelement location="../export/ohana1/commons-collections-3.2.1.jar"/> 
    </path> 
    <target name="init"> 
     <mkdir dir="bin"/> 
     <copy includeemptydirs="false" todir="bin"> 
      <fileset dir="src"> 
       <exclude name="**/*.launch"/> 
       <exclude name="**/*.java"/> 
      </fileset> 
     </copy> 
    </target> 
    <target name="clean"> 
     <delete dir="bin"/> 
    </target> 
    <target depends="clean" name="cleanall"/> 
    <target depends="build-subprojects,build-project" name="build"/> 
    <target name="build-subprojects"/> 
    <target depends="init" name="build-project"> 
     <echo message="${ant.project.name}: ${ant.file}"/> 
     <javac debug="true" debuglevel="${debuglevel}" destdir="bin" includeantruntime="false" source="${source}" target="${target}"> 
      <src path="src"/> 
      <classpath refid="ohana1.classpath"/> 
     </javac> 
    </target> 
    <target description="Build all projects which reference this project. Useful to propagate changes." name="build-refprojects"/> 
    <target description="copy Eclipse compiler jars to ant lib directory" name="init-eclipse-compiler"> 
     <copy todir="${ant.library.dir}"> 
      <fileset dir="${ECLIPSE_HOME}/plugins" includes="org.eclipse.jdt.core_*.jar"/> 
     </copy> 
     <unzip dest="${ant.library.dir}"> 
      <patternset includes="jdtCompilerAdapter.jar"/> 
      <fileset dir="${ECLIPSE_HOME}/plugins" includes="org.eclipse.jdt.core_*.jar"/> 
     </unzip> 
    </target> 
    <target description="compile project with Eclipse compiler" name="build-eclipse-compiler"> 
     <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/> 
     <antcall target="build"/> 
    </target> 
</project> 

export.xml 파일은 jar ...

<?eclipse.ant.import?> 
<project basedir="." default="export" name="ohana1Export"> 
    <target depends="build,make-jar" name="export"/> 
    <target name="make-jar"> 
     <jar destfile="../export/ohana1/${ant.project.name}.jar" basedir="bin"/> 
    </target> 
</project> 

참고을 의미 이클립스 이 프로젝트/buildfile에 종속성 인 build이라는 대상이 없기 때문에 Ant 편집기는이 export.xml 파일에 대해 불평합니다. build 타겟은 생성 된 build.xml에 있습니다. 그 오류는 "멍청한"편집인이 올 수 있으므로 ant을 실행하기 위해 계속 진행했습니다. 명령 줄에서 ant을 호출하면 jar 파일이 만들어지지 않습니다.

난 당신이 .jar 파일을 내보내고 인간의 모든 요구 사항을 충족 ant 스크립트를 유지해야 할 필요가있는 경우 Eclipse의 ant 스크립트 생성기는 쓸모없는 결론을해야 하는가?

답변

0

예, 제 생각에 build.xml을 내보내려면 이클립스 네온 (Eclipse Neon)과 같이 .jar을 만들면 쓸모가 없습니다.

특히 다음을 수행하십시오.

  • .jar을 내보내는 간단한 ant 스크립트를 수동으로 작성하십시오. 이 게시물의 하단에있는 링크는 스크립트가 어떻게 생겼는지에 대한 축약 된 텍스트를가집니다. Xml Editor을 사용하여 New > Other > XML > XML File을 사용하여 makeJar.xml이라고하는이 새 파일을 만들어 저장하면됩니다. Package Explorer에 표시된 아이콘이 여전히 일반 XML 파일 아이콘이면 프로젝트를 새로 고치면 아이콘이 Ant 파일 아이콘으로 바뀔 수 있습니다. 앞으로는 Open With을 사용하여 XML Editor 대신 Ant Editor을 얻을 수 있습니다. 이 스크립트는 사용자가 달리 Eclipse를 통해 수행 할 .jar의 수동 반출을 대체합니다.
  • 이 스크립트는 Project > Properties > Builders에 추가 할 수 있습니다.그것은 빌더 목록에서 2 위를 차지할 것입니다. 빌더 목록의 첫 번째는 이미 존재해야하는 Java Builder입니다. Eclipse 빌드가 호출되면 전체 빌더 목록이 빌더 목록에 표시된 순서대로 처리됩니다. 따라서 .class 파일이 생성 될뿐만 아니라 .jar 파일도 생성됩니다. 달성 무엇

틀림없이 .jar을 생성하려는 시도가 실패한에 보낸 build.xml를 사용하는 점이었다 .class 생성 및 .jar 세대는 이제 통합되어 있기 때문에 큰 자동화입니다.

새 빌더를 생성하는 데 사용할 수있는 Project > Properties > Builders의 대화 상자가 있습니다. New을 선택한 다음 Ant Builder을 선택하십시오. 나는 BuildermakeJar이라는 이름을 주었다. 여기

Builders

당신이 .jar 파일을 생성하여 수동으로 작성 Ant 스크립트 당신의 buildfile를 검색 할 수 있도록 새로운 Ant 빌더의 대화입니다. 이 예제에서 스크립트는 makeJar.xml입니다. 또한 스크립트를 실행할 때 base directory을 찾아 볼 수 있습니다.

Configuration of the new Ant Builder

새로운 빌더를 설정 한 후, 프로젝트 "깨끗한"나 프로젝트도 .jar.class 파일을 만들 것 "구축".


이 주제에 대한 Eclipse의 설명서는 링크에 있습니다. 지시 사항이 들어있는 정확한 페이지를 링크하는 것은 불가능한 것처럼 보이므로 문서 트리를 "프로젝트 빌더로 Ant 빌드 파일"섹션으로 찾아야합니다.

Link to Eclipse and Ant