8

我确定这行得通!

我有一个 Maven 依赖插件配置,可以将 java 服务包装器放入 appassembler 目标文件夹中的特定文件夹中。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <configuration>
        <artifactItems>
            <artifactItem>
                <groupId>org.tanukisoftware</groupId>
                <artifactId>wrapper</artifactId>
                <version>3.2.1</version>
                <classifier>${target.arch.classifier}</classifier>
                <type>jar</type>
                <overWrite>true</overWrite>
                <outputDirectory>${project.build.directory}/appassembler/jsw/projectnamehere/lib</outputDirectory>
                <destFileName>wrapper-${target.arch}.dll</destFileName>
            </artifactItem>
            </artifactItem>
        </artifactItems>
    </configuration>
</plugin>

但它被写为 wrapper.dll (这是 repo 中的文件名)。target.arch 设置为“windows-x86-32”。

这是日志文件的一部分:

[DEBUG]   (s) groupId = org.tanukisoftware
[DEBUG]   (s) artifactId = wrapper
[DEBUG]   (s) version = 3.2.1
[DEBUG]   (s) classifier = win32
[DEBUG]   (s) type = jar
[DEBUG]   (s) overWrite = true
[DEBUG]   (s) outputDirectory = <projectfolder>\target\appassembler\jsw\SophisToTradeCacheConsumer\lib
[DEBUG]   (s) destFileName = wrapper-windows-x86-32.dll
...
[DEBUG]   (f) outputAbsoluteArtifactFilename = false
[DEBUG]   (s) outputDirectory = <projectfolder>\target\dependency
[DEBUG]   (s) overWriteIfNewer = true
[DEBUG]   (s) overWriteReleases = false
[DEBUG]   (s) overWriteSnapshots = false
...
[INFO] [dependency:unpack {execution: default-cli}]
[INFO] Configured Artifact: org.tanukisoftware:wrapper:win32:3.2.1:jar
[INFO] Unpacking C:\WORK\maven\repository\org\tanukisoftware\wrapper\3.2.1\wrapper-3.2.1-win32.jarto
 <projectfolder>\target\appassembler\jsw\SophisToTradeCacheConsumer\lib
with Includes null and excludes:null
[DEBUG] Expanding: C:\WORK\maven\repository\org\tanukisoftware\wrapper\3.2.1\wrapper-3.2.1-win32.jar into <projectfolder>\target\appassembler\jsw\SophisToTradeCacheConsumer\lib
[DEBUG] expand complete
4

1 回答 1

5

我看到你正在使用dependency:unpack,但这个目标(逻辑上)不支持(解压文件sdestFileName时目标文件名没有真正意义)。

在您的情况下,请在打包 dll 时使用“最终名称”。或者使用 Maven AntRun 插件进行一些后期处理来重命名文件。

于 2010-09-02T18:45:14.240 回答