2010-09-02 82 views
4

我确定这个工作正常!未使用maven-dependency-plugin的destFileName?

我有一个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

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

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

+0

嗯,我觉得如果提供了destFileName,那么这个插件应该尊重它,但我们就是我们所在的位置。 – 2010-09-03 08:09:54

+0

@Paul好吧,您可以尝试提交RFE,但在我看来,为档案中包含的(多个)文件名提供(唯一的)目标文件名是没有意义的。 – 2010-09-03 08:36:43

+1

不,你可能是对的。如果插件说了一些关于忽略destfilename标记的内容,那会很好。 – 2010-09-03 09:22:48