【问题标题】:How do I create dynamically named folders with Maven Archetype?如何使用 Maven Archetype 创建动态命名的文件夹?
【发布时间】:2010-05-10 12:41:09
【问题描述】:

我正在尝试构建一个这样的原型结构,一个带有一些自定义文件夹的 web 应用程序,用于我们的 web 框架。特别是一些动态文件夹,其中也会包含一些原型带来的文件。

└───src
    └───main
        └───webapp
            └───WEB-INF
                ├───cfg
                │   ├───log4j
                │   └───resources
                │       └───extensions
                │           ├───${shortName}-business
                │           └───${shortName}-layout
                └───lib

我向我的archetype-metadata.xml 添加了一个必需的属性,以便为项目提供一个短名称,该名称用于生成唯一文件夹等。

<requiredProperties>
  <requiredProperty key="shortName" />
</requiredProperties>

我在fileSet中使用的属性shortName

<fileSet>
  <directory>[..]/resources/extensions/${shortName}-business</directory>
</fileSet>

<fileSet>
  <directory>[..]/resources/extensions/${shortName}-layout</directory>
</fileSet>

生成原型的命令:

mvn archetype:generate -B \
       -DgroupId=com.stackoverflow \
       -DartifactId=stackoverflow-question -DarchetypeGroupId=com.stackoverflow \
       -DarchetypeArtifactId=stackoverflow-archetype -DarchetypeVersion=1.0 \
       -DshortName=soq

我假设得到以下文件夹结构:

..\
   ├───soq-business
   └───soq-layout

但我将这个名称 ${shortName}-business 作为文件夹,而不是用属性替换它。

..\
   ├───${shortName}-business
   └───${shortName}-layout

我怎样才能做到这一点?此时如何在不知道文件夹名称的情况下将文件放在soq-business下面?

【问题讨论】:

    标签: maven-2 maven-archetype


    【解决方案1】:

    我今天发现了完全相同的问题......

    我发现 Adam Leggett 的一些博客文章描述了在路径中使用占位符:查看 https://mikeciblogs.wordpress.com/2010/01/14/working-with-custom-maven-archetypes-part-1/(第 4 步)。

    诀窍似乎是使用双下划线而不是花括号语法,因此${shortName} 变为__shortName__

    但是,我还没有尝试过解决方案。如果您这样做,请让我们知道它是否有效。谢谢!

    HTH!

    【讨论】:

    • 博客不可用。可能链接失效了,求大神更新一下!
    【解决方案2】:

    正如 Vivian 所指出的,我的博客文章提供了一些关于如何做到这一点的提示。 但是,需要注意的一件事(博客中没有明确提及)是此功能仅适用于原型插件 2.x

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      • 1970-01-01
      • 2011-06-13
      • 1970-01-01
      • 2022-12-20
      • 1970-01-01
      相关资源
      最近更新 更多