首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在运行时设置Maven artifactId?

如何在运行时设置Maven artifactId?
EN

Stack Overflow用户
提问于 2015-09-30 07:35:58
回答 1查看 2.9K关注 0票数 1

我想在运行时在POM中定义artifactId。我从this question的答案中知道,这是错误的练习,应该使用Maven原型,但我真的很想知道这是否可能。

目前,我有一个具有这样一个artifactId的POM:

代码语言:javascript
运行
复制
<artifactId>myproject${var}</artifactId>

通过在命令行上设置变量,我可以成功地构建项目:

代码语言:javascript
运行
复制
mvn install -Dvar=justatest

现在可以在运行时更改这个输入变量了吗?例如,将其转换为大写(例如用gmaven-plugin)还是类似的?

EN

Stack Overflow用户

回答已采纳

发布于 2015-09-30 10:56:40

不能在构建时更改artifactId。它是Maven坐标的一部分(groupId:artifactId:version),因此必须修复它。

在使用maven-antrun-plugin构建过程中可以更改的所有其他参数。

代码语言:javascript
运行
复制
<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.8</version>
    <executions>
        <execution>
            <id>touppercase</id>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <target>
                    <property name="varUpper" value="${var}"/>
                    <script language="javascript"> <![CDATA[
                        property = project.getProperty("varUpper");
                        project.setProperty("varUpper", property.toUpperCase());
                    ]]> </script>
                </target>
                <exportAntProperties>true</exportAntProperties>
            </configuration>
        </execution>
    </executions>
</plugin>

在此执行之后,Maven将有一个名为${varUpper}的新属性,该属性被超感知为${var}。您需要将正确的阶段设置为上面的片段,以匹配您的构建过程。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32860424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档