2017-05-31 73 views
0

我无法找到解决我的问题。 总之:在这种结构中,耳/ pom.xml的所有工作完全Maven-ear-plugin自定义finalname

<project ...> 
    <build> 
    <finalName>${project.artifactId}</finalName> 
    .... 
    </build> 
</project> 

但是,当我尝试添加时间戳finalname:

... 
<finalName>${project.artifactId}-${maven.build.timestamp}</finalName> 
... 

我得到这个错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-ear-plugin:2.8:generate-application-xml (default-generate-application-xml) on project soc-ear: Unable to copy application.xml to final destination: The file, directory, or volume name syntax is incorrect

有些想法吗?在此先感谢

+0

一个简单的解决方案是不改变每个版本的ear文件名称。时间戳将在文件创建时创建,如果您需要其他信息,请使用Maven资源插件来为每个构建填充构建属性文件,并在其中包含项目版本和时间戳。如果您绝对必须更改耳朵文件名,请修改ear插件配置中的bundleFileName元素,而不是项目最终名称。请参阅http://maven.apache.org/plugins/maven-ear-plugin/ear-mojo.html –

+0

finalName标记仅用于目标文件夹中的文件名,但不会影响安装的结果名称的名称通过'mvn install'或者通过'mvn deploy'部署到远程仓库的程序.... – khmarbaise

+0

使用bundleFileName我不能改变耳朵名称,但只能改变模块名称。我需要改变耳朵的最终名称 – Alessandro

回答

0

我找到了解决方案。 要编辑的最终名称,只是财产移到插件

<build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-ear-plugin</artifactId> 
       <configuration> 
        <finalName>${project.artifactId}-${maven.build.timestamp}</finalName> 
        ... 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

我不知道把它在通用的构建,而不是在插件之间的区别,但它确实工作。