2015-04-21 6 views
11

Wir entwickeln unsere eigenen Eclipse-Plugin-Gläser von unserer Eclipse-basierten Anwendung verwendet. Wir verwenden derzeit proguard-maven-plugin Version 2.0.8, um sie zu verschleiern. Wenn jedoch mvn install auf einigen Plugins ausgeführt wird, werden wir zur Zeit die folgenden Fehler Problem aufgetreten ist:Beim Ausführen von Proguard-Maven-Plugin, "CreateProcess Fehler = 206, der Dateiname oder die Erweiterung ist zu lang" tritt

[INFO] --------------------------------------------------------------------- 
[INFO] BUILD FAILURE 
[INFO] --------------------------------------------------------------------- 
[INFO] Total time: 1:34.297s 
[INFO] Finished at: Tue Apr 21 16:03:51 SGT 2015 
[INFO] Final Memory: 88M/210M 
[INFO] --------------------------------------------------------------------- 
[ERROR] Failed to execute goal com.github.wvengen:proguard-maven-plugin:2.0.8:proguard (default) on project com.x.y: Execution default of goal com.github.wvengen:proguard-maven-plugin:2.0.8:proguard failed: java.io.IOException: Cannot run program "C:\Program Files (x86)\Java\jdk1.7.0_55\jre\bin\java.exe": CreateProcess error=206, The filename or extension is too long -> [Help 1] 

Hat jemand jemals begegnet? Wenn ja, wie haben Sie das Problem gelöst?

Beachten Sie, dass ich tatsächlich this question und andere verwandte Fragen vor der Entscheidung zu fragen gesehen habe, aber die Antwort von Brad Mace ist nicht auf meinen Fall anwendbar, da die "CreateProcess error = 206, der Dateiname oder die Erweiterung ist zu lang" generiert wird Proguard und nicht von Javadoc. Anfangs denke ich (korrigiere mich, wenn ich falsch liege), dass entweder eine der 7 Optionen, die von espinchi gegeben werden, oder eine Variante von ihnen funktionieren könnte, aber ich bin mir nicht sicher, welche. Nur, damit Sie meine Einschränkungen bei der Bestimmung der Lösung wissen:

  1. Ich bin nicht sicher, wenn alle der CLASSPATHs in diesem speziellen Plugin gültig sind, da diese vor vielen Jahren von jemand anderem viele, entwickelt wurde, so Ich glaube nicht, dass ich den Entwickler noch kontaktieren kann. Das macht mich zögerlich, die Klassenpfade zu reduzieren, aus Angst, dass es tatsächlich mehr schaden als nützen könnte.
  2. Ich kann den Schalter nicht verwenden, um "IntelliJ" -Option zu verwenden, da dieses Problem in der Windows-Befehlszeile bei mvn install und nicht in Eclipse IDE aufgetreten ist.
  3. Ich denke, die anderen Optionen sind zu langweilig für mich. Ich hoffe, es gibt eine einfachere Lösung.

Als Referenz unten ist die Proguard bezogenen Ausschnitt aus meiner pom-Datei:

<build> 
    <plugins> 
     <plugin> 
      <groupId>com.github.wvengen</groupId> 
      <artifactId>proguard-maven-plugin</artifactId> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>proguard</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <maxMemory>1024m</maxMemory> 
       <proguardInclude>${basedir}/proguard.conf</proguardInclude> 
       <libs> 
        <lib>${java.home}/lib/rt.jar</lib> 
       </libs> 
       <exclusions> 
        <exclusion> 
         <groupId>com.company.package</groupId> 
        </exclusion> 
       </exclusions> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
+1

mögliches Duplikat [Create error = 206, ist der Dateiname oder Erweiterung zu lang, wenn main() Methode läuft] (http://stackoverflow.com/questions/10519558/createprocess-error-206-the-filename-or-extension-is-zu-long-wenn-running-main) – gpapaz

+0

eigentlich habe ich diesen Beitrag gesehen, bevor ich meine Frage geschrieben habe. die Antwort 'Sie können useexternalfile = "yes"' von Brad Mace hinzufügen, ist nicht auf meinen Fall anwendbar. Ich denke, dass mindestens 1 der 7 Optionen von Espinchi mein Problem lösen kann, aber ich bin mir nicht sicher, welches. – bookhuntress

+2

Dann aktualisieren Sie entweder Ihre Frage, um Hilfe zu erhalten, um festzustellen, welche der 7 Optionen für Ihren Fall funktioniert, oder gehen Sie zu dieser Frage und fragen Sie nach Kommentaren? So stellen Sie die gleiche Frage wie die, die als Duplikate präsentiert werden. – gpapaz

Antwort

0

Irgendwie für unseren Fall, der ff. Schritte beseitigt den Fehler:

  1. die Abhängigkeiten Vergleichen in der pom.xml der Komponente und die von proguard-Maven-Plugin identifiziert Abhängigkeiten. In unserem Fall haben wir festgestellt, dass proguard-maven-plugin einige Abhängigkeiten identifiziert hat, die von der Komponente nicht wirklich benötigt werden. Tatsächlich sind diese Abhängigkeiten nicht einmal in der pom.xml der Komponente spezifiziert.

  2. Ändern Sie nach Durchführung von Schritt 1 die Komponente pom.xml so, dass die unnötigen Abhängigkeiten ausgeschlossen werden, die Proguard identifiziert hat (z. B. den Parameter exclusion). Im Folgenden ein Auszug Probe:

<build> 
    <plugins> 
     <plugin> 
      <groupId>com.github.wvengen</groupId> 
      <artifactId>proguard-maven-plugin</artifactId> 
      <version>2.0.10</version> 
      <executions> 
       <execution> 
        <phase>package</phase> 
         <goals> 
          <goal>proguard</goal> 
         </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <maxMemory>1024m</maxMemory> 
       <proguardInclude>${basedir}/proguard.conf</proguardInclude> 
       <libs> 
        <lib>${java.home}/lib/rt.jar</lib> 
        <lib>${java.home}/lib/jce.jar</lib> 
       </libs> 
       <!-- For some reason, these components are included by the plugin even if they are not dependencies of SES components so we need to explicitly indicate to proguard-maven-plugin to exclude them. --> 
       <exclusions> 
        <exclusion> 
         <groupId>p2.eclipse-plugin</groupId> 
         <artifactId>org.apache.geronimo.specs.geronimo-jms_1.1_spec</artifactId> 
        </exclusion> 
        <!-- other exclusions here --> 
       </exclusions> 
      </configuration> 
      <dependencies> 
       <dependency> 
        <groupId>net.sf.proguard</groupId> 
        <artifactId>proguard-base</artifactId> 
        <version>5.2</version> 
        <scope>runtime</scope> 
       </dependency> 
      </dependencies> 
     </plugin> 
    </plugins> 
</build> 
Verwandte Themen