Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven复制JAR中的所有my.class文件_Java_Maven_Jar - Fatal编程技术网

Java Maven复制JAR中的所有my.class文件

Java Maven复制JAR中的所有my.class文件,java,maven,jar,Java,Maven,Jar,我一直在我的JAR上运行优化器。我一直想知道为什么。今天我想替换单个.class文件,当我打开jar时,我在/cz/autoclient/目录中查看了这个: 难怪档案馆的人不能处理这些乱七八糟的东西。我找到了配置,但没用。这是我在pom.xml中的构建配置: <build> <testSourceDirectory>${test.dir}</testSourceDirectory> <sourceDirectory>${src

我一直在我的JAR上运行优化器。我一直想知道为什么。今天我想替换单个
.class
文件,当我打开jar时,我在
/cz/autoclient/
目录中查看了这个:

难怪档案馆的人不能处理这些乱七八糟的东西。我找到了配置,但没用。这是我在
pom.xml
中的构建配置:

  <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>

是什么导致类文件重复以及如何解决此问题?只有编译源文件
/cz/autoclient/
中的文件似乎是重复的。

首先,您应该删除:

${test.dir}
${src.dir}
${resource.dir}
除非你100%知道你在做什么,但根据你的帖子你不知道。所以把它去掉


此外,请使用maven assembly插件的最新版本,而不是如此古老的版本。。。请参见此处:

请发布完整的pom或maven跑步的完整日志。${src.dir}、${test.dir}和${resource.dir}的值是多少?它们可能是重叠的。你可能在程序集插件使用的东西上有一些重复。从这个链接复制我的插件的版本号修复了这个问题,没有任何其他更改。
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)