我确定这有效!
我有一个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
答案 0 :(得分:5)
我看到你正在使用dependency:unpack
但是这个目标(逻辑上)不支持destFileName
(解压缩文件 s时目标文件名没有意义 )。
在您的情况下,在打包dll时使用“最终名称”。或者使用Maven AntRun插件进行一些后期处理以重命名文件。