Maven原型:修改artifactId

2023-12-22

在进行项目时,我的要求是创建一个模块。

该命令将类似于:

mvn archetype:generate \
  -DarchetypeCatalog=local \
  -DartifactId=test-module

并且目标应该具有以下文件结构

test-module
|--pom.xml
`--src
   `--main
      |--install
      |  `--install.sh
      `--scripts
         `--test_module.sh

我的整个目标是创建另一个从artifactId(例如artifactIdWithUnderscore)派生的变量,替换所有连字符-通过下视镜_。这样我就可以使用更新后的变量来创建文件。

例子:

+------------------+---------------------------------+
|INPUT - artifactId|OUTPUT - artifactIdWithUnderscore|
+------------------+---------------------------------+
|    test-module   |          test_module            |
|       temp       |             temp                |
| test-temp-module |       test_temp_module          |
+------------------+---------------------------------+

我尝试创建一个新变量带有下划线的artifactId通过添加以下条目原型元数据.xml

选项1:

<requiredProperty key="artifactIdWithUnderscore" >
  <defaultValue>${StringUtils.replace(${artifactId}, "-", "_")}</defaultValue>
</requiredProperty>

Output:

${StringUtils.replace(${artifactId}, "-", "_")}

选项2:

<requiredProperty key="artifactIdWithUnderscore" >
  <defaultValue>${artifactId.replaceAll("-", "_")}</defaultValue>
</requiredProperty>

Output:

maven_archetype_script

上述artifactId的值来自archetype项目本身的POM。

选项 3:

<requiredProperty key="artifactIdWithUnderscore" >
  <defaultValue>${artifactId}.replaceAll("-", "_")</defaultValue>
</requiredProperty>

Output:

test-module.replaceAll("-", "_")

请让我知道如何实现这一目标。

EDIT:

选项 4:

<requiredProperty key="artifactIdWithUnderscore" >
    <defaultValue>${__artifactId__.replaceAll("-", "_")}</defaultValue>
</requiredProperty>

Output:

INFO: Null reference [template 'artifactIdWithUnderscore', line 1, column 1] : ${__artifactId__.replaceAll("-", "_")} cannot be resolved. 
Define value for property 'artifactIdWithUnderscore': ${__artifactId__.replaceAll("-", "_")}: :

选项 2 对我有用:

<requiredProperty key="artifactIdWithoutDash">
  <defaultValue>${artifactId.replaceAll("-", ".")}</defaultValue>
</requiredProperty>

我可以使用 __artifactIdWithoutDash__.sh 有一个文件名来创建文件(在我的例子中是:some.letters.__artifactIdWithoutDash__.cfg)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Maven原型:修改artifactId 的相关文章

随机推荐

  • java 已启动但返回退出代码 = -805306369

    谁能帮我解决这个错误 java 已启动但返回退出代码 805306369 C Windows System32 javaw exe jar C Program Files Java eclipse jee helios SR2 win32
  • 同位素附加问题

    我正在使用同位素构建一个平滑的网格画廊 目前我在附加功能方面遇到问题 http isotope metafizzy co docs methods html append http isotope metafizzy co docs met
  • 如何 git commit --amend 作为分支基础的提交

    我有 master head 的分支 foo 我想修改 master head 并让这些更改在分支 foo 上生效 我做了以下事情 git checkout master git add git commit amend git check
  • 使用 PlayFramework 2.4.2 的 ProvisionException

    我正在将一个项目从 Play 2 2 4 迁移到 2 4 2 但遇到了一个我无法理解和解决的异常 Unexpected exception ProvisionException Unable to provision see the fol
  • 如何在Python中计算水分通量散度

    我想计算南部非洲的水汽通量散度 MFD 我在特定一天使用 850 hPa 的 u 和 v 风分量以及 850 hPa 的比湿度 我已按照此处描述的步骤进行操作 使用Python计算u和v的风散度 np gradient https stac
  • 在 Visual Studio Code 中设置文件“launch.json”的 Python 路径

    我使用 Visual Studio Code 已有几年了 我发现它是一个非常好的 IDE 我用 Python 编程的次数比任何其他语言都多 令我困扰的是我没有抽出时间使用 IDE 的调试器 尽管它是一个功能 按调试播放按钮时出错 Faile
  • dplyr 总结函数返回值何时为向量值?

    The dplyr summarize 函数可以对数据应用任意函数 但函数似乎必须返回标量值 我很好奇是否有一种合理的方法来处理返回向量值的函数 而无需多次调用该函数 这是一个有点愚蠢的最小示例 考虑一个给出多个值的函数 例如 f lt f
  • ubuntu 18.10 - 如何使用 java 安装 JavaFX

    我安装了openjdk8和11 JavaFX 都没有附带 我安装了 openjfx 和 libopenjfx java 软件包 但无法让我的应用程序运行 sudo apt list installed grep jfx WARNING ap
  • 两个geom_points添加图例

    我使用以下代码绘制 2 geom point 图 source http www openintro org stat data arbuthnot R library ggplot2 ggplot geom point aes x yea
  • Hibernate、Java 9 和 SystemException

    我一直在尝试在 Java 9 Spring Boot 1 5 x Maven 项目中运行 Hibernate 5 2 11 应用程序 但缺少类 Caused by java lang NoClassDefFoundError javax t
  • 找不到 com.google.android.gms:strict-version-matcher-plugin:1.1.0

    无法解析配置 类路径 的所有文件 找不到 com google android gms strict version matcher plugin 1 1 0 在以下位置进行了搜索 https jcenter bintray com com
  • 当新值与上一个值相同时 StateFlow 不会发出

    我有一个登录表格 我用StateFlow发送LoginResult 调用API后 来自ViewModel to Activity 在活动中 如果登录失败 我将显示错误对话框 第一次运行良好 但从第二次登录失败后 错误对话框将不再显示 我测试
  • Rails 3.1 间歇性“脚本头过早结束”

    所以我开始将我们的应用程序从 Rails 3 0 9 升级到 Rails 3 1 它在开发环境中运行良好 是时候将其放到临时服务器上了 这样我们就可以运行一些完整的验收测试 但是哦 不 我们正面临着可怕的 内部服务器错误 页面有一半的时间返
  • XML 漏洞

    xml 一直是面向服务的应用程序 SOA 的支柱 并且在未来它将变得非常有用 由于 xml 简单 灵活 因此很容易受到攻击 攻击者可以将其用于自己的目的 因此 一些攻击是强制解析攻击 XML外部实体 XEE 攻击 XML dos xdos
  • 从 PowerShell 调用 exe 并获取有关成功或失败的反馈

    如何在 PowerShell 中运行可执行文件并通过 if 语句确定它是成功还是失败 更具体地说 我试图让 devenv exe 从 PowerShell 脚本构建解决方案 我需要知道它是成功还是失败 失败是指构建失败 并且我假设 deve
  • Ruby 将数组合并为一个字符串

    在 Ruby 中 有没有一种方法可以将所有数组元素组合成一个字符串 数组示例 arr p Hello World p p This is a test p 示例输出 p Hello World p p This is a test p Us
  • 为什么 C++ 中元组的使用不常见?

    为什么似乎没有人在 C 中使用元组 或者Boost元组库 http www boost org doc libs 1 39 0 libs tuple doc tuple users guide html或者 TR1 的标准库 我读过很多 C
  • 将组件对齐到所需位置

    寻求帮助来设计如下所示的布局 我面临的主要挑战是将组件对齐到所需的位置 请参考三个按钮 图标 及其位置 从字面上看 就是发疯 思考如何将它们准确地放置在所需的位置 任何帮助深表感谢 问候 罗尼 由于您使用了 Android 类别 我假设您正
  • 如何使用 JavaScript 触发“isTrusted=true”点击事件?

    我正在尝试使用 Chrome 扩展来模拟用户点击和鼠标移动 例如 在我的内容脚本中 有一个按钮单击 document querySelector SOME SELECTOR click 该行触发具有以下属性的单击事件 MouseEvent
  • Maven原型:修改artifactId

    在进行项目时 我的要求是创建一个模块 该命令将类似于 mvn archetype generate DarchetypeCatalog local DartifactId test module 并且目标应该具有以下文件结构 test mo