2

通过 Maven,我试图创建两个单独的 jar,每个 jar 中都有不同的 dll(32 位和 64 位),但 dll 必须在 jar 的根目录下使用相同的名称。我可以创建单独的 jar 没问题,但似乎找不到重命名文件的方法。

我尝试将具有相同名称的文件放在不同的目录中,将它们复制到目标,然后构建 jar。但是因为'将它们放在单独的目录中,它们最终不会出现在 jar 的根目录中。

我需要这个,因为我正在创建一个 Applet 并使用 Java Web Start 进行部署。dll 需要位于单独的 jar 中以针对不同的架构,并且需要根据 JNLP 规范位于 jar 的根目录中。

起始位置:

\src
     \main
        \resources
            rxtxSerial32.dll
            rxtxSerial64.dll

期望的结束位置:

native-dll-32.jar
    rxtxSerial.dll (the 32 bit version)

native-dll-64.jar
    rxtxSerial.dll  (the 64 bit version)

为了获得单独的罐子,我正在使用 maven-jar-plugin

          <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <executions>
              <execution>
                <id>native-dll-64</id>
                <goals><goal>jar</goal></goals>
                <phase>package</phase>
                <configuration>
                  <classifier>native-dll-64</classifier>
                  <includes>
                    <include>**/rxtxSerial64.dll</include>
                  </includes>
                </configuration>
              </execution>
            </executions>
        </plugin>

非常感谢任何帮助。也许我需要一个全新的策略?

4

1 回答 1

1

我建议您为这些创建两个项目,因为您希望最终得到两个 jar 文件。如果项目在构建中共享通用功能,则可以将其放入父 POM 文件中。

在大多数情况下,从一个项目生成多个 jar 文件会导致麻烦——我通常会尽量避免这种情况。一个项目 - 一个工件,遵循这条规则帮助了我几次。

于 2013-03-20T13:53:16.317 回答