【问题标题】:Dynamic file name in Maven archetypeMaven 原型中的动态文件名
【发布时间】:2011-07-23 06:04:19
【问题描述】:

我对 Maven 有疑问。我试图创建原型,但我现在不知道如何将源文件放入目录${groupId}/${artifactId}。如果我尝试从此原型创建项目,文件将隐式存储在 ${groupId} 目录中。 Maven 似乎认为,该组 ID 是一个包名。但是我使用${groupId}/${artifactId} 作为包名,所以我需要将源文件存储在${groupId}/${artifactId} 目录中。我已经看到了解决方案:将文件放入__artifactId__ 目录。双下划线应该确定一个变量。然而它没有任何效果。变量似乎为空,但在源文件中的包名中已成功使用。

有没有人知道,在文件名中使用双下划线时应该使用哪个技巧?

【问题讨论】:

  • 你有没有想过这个问题?我一直在尝试做同样的事情,但使用__artifactId__ 作为文件名。也就是说,__artifactId__.java 包含 public class ${artifactId} { 等。文件内的替换(即 ${artifactId})可以正常工作,但文件名替换不行。
  • 您使用的是哪个版本的原型插件?对于maven-archetype-plugin:3.2.0 版本,__artifactId__.java 用例对我来说很好。

标签: maven maven-archetype


【解决方案1】:

当您像这样创建项目的原型时: mvn archetype:create-from-project -Dinteractive 将包 - 以显式形式设置到项目的根目录。

然后您创建一个此原型的项目,以显式形式输入您的根包 ${groupId}.$ {artifactId}。例子: mvn archetype: generate -DarchetypeGroupId = com.test -DarchetypeArtifactId = my_archetype -DgroupId = com.test -DartifactId = app -Dpackage = com.test.app -Dversion = 1.0-SNAPHOT

在这种情况下,$ {groupId} = com.test,$ {artifactId} = app 和 目标包 = com.test.app

【讨论】:

  • 我不明白这如何回答创建动态命名文件的原始问题,就像动态目录一样。
猜你喜欢
  • 1970-01-01
  • 2013-07-04
  • 1970-01-01
  • 2012-11-23
  • 1970-01-01
  • 2020-03-27
  • 1970-01-01
  • 1970-01-01
  • 2017-04-18
相关资源
最近更新 更多