2014-04-16 11 views
18

Eclipse Luna 4.4-M6을 설치했습니다. Eclipse 4.3 (Kepler)에 Google Plugin을 설치하려고 시도했지만 Eclipse에서 설치를 허용하지 않습니다.Eclipse Luna 용 Google 플러그인?

강제로 설치할 수있는 방법이 있습니까 (예 : 다운로드하여 일부 매니페스트 또는 기타 수정)? 또는 4.3과 4.4 사이의 변경 사항이 깨어지기 때문에 이것이 쓸데없는 것입니까?

+0

루나는 아직 개발 중입니다 (M6은 마일스톤 빌드입니다). 그래서 다른 제품은 아직 테스트하지 않았을 것입니다. –

+1

루나가 아직 개발 중임을 이해합니다. 어쨌든 플러그인을 설치하는 방법이 있는지 궁금 해서요. 나는 그 위험을 감수 할 준비가되어있다. –

+1

Luna가 공식적으로 출시되었으므로 지금 Google에서 기다리고 있습니다! –

답변

2

그것은 이클립스 루나에 설치 케플러 용 Google 플러그인을 허용하도록 매니페스트를 변경하는 방법 거기 밝혀졌습니다. 기여자 Google 그룹스의 Ze Kritter은 필요한 작업을 수행하는 Apache Ant build.xml 파일을 작성했습니다 (original here).

나를 위해 아름답게 작동했습니다. 나는이 스크립트를 성공적으로 실행하고 루나에 플러그인을 설치했다. 적어도 GWT에서는 평소와 같이 작동하는 것 같다.

Google 그룹의 discussion thread에 따르면 Maven 플러그인과 개인적으로 호환되지 않습니다. (개인적으로 Maven을 사용하지 않습니다.) 새롭고 잘 테스트 된 Google 플러그인이 곧 출시 될 예정입니다 (2014 년 7 월 말).

<?xml version="1.0" encoding="UTF-8"?> 

<project name="gpe.4.luna" basedir="." default="update.end"> 
    <property environment="env"/> 

    <property name="project.base.dir" value="."/> 
    <property name="project.temp.dir" value="${project.base.dir}/temp"/> 
    <property name="project.plugin.dir" value="${project.base.dir}/plugin"/> 
    <property name="project.plugins.dir" value="${project.plugin.dir}/plugins"/> 
    <property name="e42.plugin.jar" value="${project.plugins.dir}/com.google.gdt.eclipse.platform.e42_3.6.0.v201406262229-rel-r43.jar"/> 
    <property name="artifacts.jar" value="${project.plugin.dir}/artifacts.jar"/> 
    <property name="content.jar" value="${project.plugin.dir}/content.jar"/> 

    <property name="plugin43.zip" value="com.google.gdt.eclipse.suite.4.3.update.site_3.6.0.zip"/> 
    <property name="plugin44.zip" value="com.google.gdt.eclipse.suite.4.4.update.site_3.6.0.zip"/> 

    <!-- 
     source: http://stackoverflow.com/a/5340557/3747097 
     Loads entries from a manifest file. 

     @jar  The jar from where to read 
     @file A manifest file to read 
     @prefix A prefix to prepend 
     @section The name of the manifest section to load 
    --> 
    <scriptdef name="loadManifest" language="javascript" loaderRef="sharedbuild-loaderRef"> 
     <attribute name="jar" /> 
     <attribute name="file" /> 
     <attribute name="prefix" /> 
     <attribute name="section" /> 
     <![CDATA[ 
      var jarname = attributes.get("jar"); 
      var filename = attributes.get("file"); 
      if (jarname != null && filename != null) { 
       self.fail("Only one of jar or file is required"); 
      } 
      var prefix = attributes.get("prefix"); 
      if (prefix == null) { 
       prefix = ""; 
      } 
      var section = attributes.get("section"); 

      var manifest; 
      if (jarname != null) { 
       var jarfile = new java.util.jar.JarFile(new java.io.File(jarname)); 
       manifest = jarfile.getManifest(); 
      } else if (filename != null) { 
       manifest = new java.util.jar.Manifest(new java.io.FileInputStream(new java.io.File(filename))); 
      } else { 
       self.fail("One of jar or file is required"); 
      } 

      if (manifest == null) { 
       self.log("No manifest in " + jar); 
      } else { 
       var attributes = (section == null) ? manifest.getMainAttributes() : manifest.getAttributes(section); 
       if (attributes != null) { 
        var iter = attributes.entrySet().iterator(); 
        while (iter.hasNext()) { 
         var entry = iter.next(); 
         // self.log("key " + entry.getKey()); 
         // self.log("value " + entry.getValue()); 
         project.setProperty(prefix + entry.getKey(), entry.getValue()); 
        } 
       } 
      } 
     ]]> 
    </scriptdef> 

    <!-- 
     source: http://giorgio-ferrara.blogspot.ru/2010/09/apache-ant-how-to-search-and-replace.html 
    --> 
    <macrodef name="replaceStringWithRegExp"> 
     <attribute name="string"/> 
     <attribute name="searchPattern"/> 
     <attribute name="replacementPattern"/> 
     <attribute name="property"/> 
     <sequential> 
      <tokens id="id"> 
       <concat> 
       <string value="@{string}"/> 
       <filterchain> 
        <tokenfilter> 
         <replaceregex pattern="@{searchPattern}" 
            replace="@{replacementPattern}" 
            flags="g"/> 
        </tokenfilter> 
       </filterchain> 
       </concat> 
      </tokens> 
      <property name="@{property}" value="${toString:id}"/> 
     </sequential> 
    </macrodef> 

    <target name="clean"> 
     <delete dir="${project.temp.dir}"/> 
     <delete dir="${project.plugin.dir}"/> 
     <delete file="${plugin44.zip}"/> 
    </target> 

    <target depends="clean" name="init"> 
     <mkdir dir="${project.temp.dir}"/> 
    </target> 

    <target depends="init" name="check.source"> 
     <condition property="plugin-not-found"> 
      <not> 
       <available file="${plugin43.zip}"/> 
      </not> 
     </condition> 
    </target> 

    <target depends="check.source" name="get.source" if="${plugin-not-found}"> 
     <get src="https://commondatastorage.googleapis.com/eclipse_toolreleases/products/gpe/release/3.6.0/4.3/com.google.gdt.eclipse.suite.4.3.update.site_3.6.0.zip" dest="."/> 
    </target> 

    <target depends="check.source, get.source" name="unzip.source"> 
     <unzip src="${plugin43.zip}" dest="${project.plugin.dir}"/> 
    </target> 

    <target depends="unzip.source" name="update.manifest"> 
     <checksum file="${e42.plugin.jar}" property="original.md5"/> 
     <loadManifest jar="${e42.plugin.jar}" prefix="e42.mf."/> 
     <replaceStringWithRegExp string="${e42.mf.Require-Bundle}" 
      searchPattern="(.*);bundle-version=&quot;\[3.8.0,3.10.0\)&quot;(.*)" 
      replacementPattern="\1\2" 
      property="Require-Bundle"/> 
     <!-- 
     <echo>${e42.mf.Require-Bundle}</echo> 
     <echo>${Require-Bundle}</echo> 
     --> 
     <jar update="true" file="${e42.plugin.jar}"> 
      <manifest> 
       <attribute name="Require-Bundle" value="${Require-Bundle}"/> 
      </manifest> 
     </jar> 
     <checksum file="${e42.plugin.jar}" property="updated.md5"/> 
     <!-- 
     <echo>${original.md5}</echo> 
     <echo>${updated.md5}</echo> 
     --> 
    </target> 

    <target depends="update.manifest" name="update.artifacts"> 
     <delete includeemptydirs="true"> 
      <fileset dir="${project.temp.dir}" includes="**/*"/> 
     </delete> 
     <unzip src="${artifacts.jar}" dest="${project.temp.dir}"/> 
     <replaceregexp byline="true"> 
      <regexp pattern="${original.md5}"/> 
      <substitution expression="${updated.md5}"/> 
      <fileset dir="${project.temp.dir}"/> 
     </replaceregexp> 
     <zip destfile="${artifacts.jar}" basedir="${project.temp.dir}"/> 
    </target> 

    <target depends="update.artifacts" name="update.content"> 
     <delete includeemptydirs="true"> 
      <fileset dir="${project.temp.dir}" includes="**/*"/> 
     </delete> 
     <unzip src="${content.jar}" dest="${project.temp.dir}"/> 
     <replaceregexp byline="true"> 
      <regexp pattern="name='org.eclipse.core.runtime' range='\[3.8.0,3.10.0\)'"/> 
      <substitution expression="name='org.eclipse.core.runtime' range='0.0.0'"/> 
      <fileset dir="${project.temp.dir}"/> 
     </replaceregexp> 
     <zip destfile="${content.jar}" basedir="${project.temp.dir}"/> 
    </target> 

    <target depends="update.content" name="create.updated.plugin"> 
     <zip destfile="${plugin44.zip}" basedir="${project.plugin.dir}"/> 
     <delete dir="${project.temp.dir}"/> 
     <delete dir="${project.plugin.dir}"/> 
    </target> 

    <target depends="create.updated.plugin" name="update.end"> 
     <echo message="plugin rebuild success"/> 
    </target> 

</project> 

나는 단어 이클립스 화성 여기을 추가 할 것입니다, 그래서이 솔루션은 검색 및 잠재적으로 이클립스의 2015 년 6 월 출시 적응하여 찾을 수 있습니다.

+1

GPE 3.7.0의 공식 버전이 현재 라이브 상태입니다 : [https://dl.google.com/eclipse/plugin/4.4](https://dl.google.com/eclipse/plugin/4.4) (Eclipse 루나) –

7

Eclipse 용 Google 플러그인 커뮤니티 포럼에 따르면 7 월 중순까지 Luna 지원을 통해 새로운 플러그인을 기대할 수 있습니다.

https://groups.google.com/forum/#!topic/google-plugin-eclipse/4YACQROrB2U

+0

이 그룹을 지적 해 주셔서 감사합니다. 저 토론 스레드에서 제공하는 지침을 사용하여 Luna에 Kepler 플러그인을 설치했습니다. 나는 당신을 upvoted했지만 대기 응답을 포함하지 않는 문제를 해결할 수있는 방법을 제공하므로 대답을 대답으로 표시했습니다. :-) –

+0

마침내 도착했습니다! –

2

최근에 해결 된 것 같습니다.

내가이 글을 쓰는 현재의 시장에서 플러그인을 발견하지 못했지만, 업데이트 사이트가있다 : https://dl.google.com/eclipse/plugin/4.4

당신은에서이에 대한 자세한 내용을보실 수 있습니다 https://developers.google.com/eclipse/docs/install-eclipse-4.4

+0

그래, 사실은 위의 내 대답 아래에 그 효과에 대한 의견을 추가했지만 그것은 전체 답변뿐만 아니라 코멘트가 좋네. 감사. –