私はJAR上でオプティマイザを実行しています。私はいつも理由を疑問に思ってきました。今日は、単一の.class
ファイルを置き換えてみたかった、と私はjarファイルを開いたとき、私は/cz/autoclient/
ディレクトリにこれを見た:MavenはJAR内のすべての.classファイルを複製します
不思議アーカイバはその混乱を扱うことができませんでした。私はsome advice on maven-compiler-plugin
構成を見つけましたが、それは助けにはなりませんでした。私は実際にそれを解決する必要があり
<build>
<testSourceDirectory>${test.dir}</testSourceDirectory>
<sourceDirectory>${src.dir}</sourceDirectory>
<resources>
<resource>
<directory>${resource.dir}</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArgument>-proc:none</compilerArgument>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>cz.autoclient.Main</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.5</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>src/</classpathPrefix>
<mainClass>cz.autoclient.Main</mainClass>
</manifest>
</archive>
<outputDirectory>${project.build.directory}/</outputDirectory>
</configuration>
</plugin>
</plugins>
</build>
:これはpom.xml
の私のビルド構成です。 JARオプティマイザの一部が、それはまた、Javaの公式ツールを破る:
jar uf AutoClient.jar version
java.util.zip.ZipException: duplicate entry: cz/autoclient/autoclick/ColorPixel.class
at java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:233)
at java.util.jar.JarOutputStream.putNextEntry(JarOutputStream.java:109)
at sun.tools.jar.Main.update(Main.java:630)
at sun.tools.jar.Main.run(Main.java:269)
at sun.tools.jar.Main.main(Main.java:1233)
何が重複したクラスファイルを引き起こし、この問題を解決する方法?コンパイルされたソースである/cz/autoclient/
のファイルのみが複製されているようです。
をあなたの完全なポンポン、またはMavenの実行の完全なログを投稿してください。 $ {src.dir}、$ {test.dir}、$ {resource.dir}の値は何ですか?重複している可能性があります。アセンブリプラグインで使用されるものに何か重複があるかもしれません。 – TomB