当前位置: 首页 > 知识库问答 >
问题:

在您自己的maven原型中使用自定义属性

符学
2023-03-14

更新(阅读后传递额外的属性到maven原型:生成):

我创造了自己的原型。src/main/资源/原型资源/pom.xml:

 <project xmlns="http://html" target="_blank">maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>$groupId</groupId>
    <artifactId>$artifactId</artifactId>
    <version>$version</version>
    <packaging>jar</packaging>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>$groupId</groupId>
                <artifactId>${3rdPartyDepsArtifactId}</artifactId>
                <version>${3rdPartyDepsVersion}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

</project>

想要使用我自己的第三方deps工件和第三方deps版本参数。所以我添加了src/main/resources/META-INF/maven/archetype元数据。xml文件:

<archetype-descriptor name="basic">
    <requiredProperties>
        <requiredProperty key="3rdPartyDepsArtifactId"/>
        <requiredProperty key="3rdPartyDepsVersion"/>
    </requiredProperties>
</archetype-descriptor>

将archetype安装到我的本地存储库中。然后根据我的自定义原型创建工件:

mvn原型:生成-Darch etypeGroupId=test-Darch etypeartifactId=test2-Darch etypeVersion=1.0.0-SNAPSHOT-D3rdPartyDepsartifactId=第三方deps-D3rdPartyDepsVersion=1.0.0-SNAPSHOT-Dgroup pId=test3-DartifactId=my_test-Dversion=1.0.0-SNAPSHOT

在输出中,我可以看到现在应用了3rdPartyDepsVersion和3rdPartyDepsartifactId:确认属性配置:

groupId: ...
artifactId: ...
version: 1.0.0-SNAPSHOT
package: ...
3rdPartyDepsArtifactId: 3rd-party-deps
3rdPartyDepsVersion: 1.0.0-SNAPSHOT

但在生成的项目中,在dependencyManagement内部,这些属性仍然被忽略:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>test3</groupId>
            <artifactId>${3rdPartyDepsArtifactId}</artifactId>
            <version>${3rdPartyDepsVersion}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

如何强制maven使用3rdPartyDepsArtifactId和3rdPartyDepsVersion属性?

共有1个答案

严狐若
2023-03-14

不确定这是否是您想要的,但另一种方法可能是在设置中包含该属性。xml(在概要文件中)或在maven命令-D中传递它们。

 类似资料:
  • 我试图创建一个自定义的原型,它定义了一个实质性的pom.xml并包含几个源文件。 在使用这个原型生成项目时,没有包含我在archetype.xml中定义的任何源(pom.xml按预期生成)。 batfile.bat位于src/main/resources/archetype-resources/src/main/resources中。 我还有一个原型-metadata.xml位于src/main/

  • Maven告诉我:您的过滤器与任何原型都不匹配。我的系统: null 我已采取的步骤是: Create my project Navigate to my project in command prompt and run the command: cd返回到“我的项目”文件夹并运行命令 运行该命令后,我会看到:

  • 以下代码不能按预期工作。显然,我不能在类定义中使用类自己的类型: 运行它的结果是: 此外,使用检查代码会返回: 如何将此代码更正为对Python和mypy有效?

  • 问题内容: 我目前正在学习Django,我的一些模型具有自定义方法来获取以特定方式格式化的值。是否可以使用order_by()在模型中定义为属性的这些自定义方法之一的值? 这是一个演示该属性如何实现的示例。 使用此模型,我可以执行以下操作: 但是我不能: 在这样的自定义属性上使用order_by的正确方法是什么? 问题答案: 不,你不能那样做。是在数据库级别应用的,但是数据库对你的自定义Pytho

  • 问题内容: 在Eclipse中,有一些模板可以通过自动插入一些代码或注释来帮助您。您可以自己通过首选项> Java>编辑器>模板来编辑这些模板。您可以使用所谓的“模板变量”来使这些模板更智能。 例如,有一个$ {see_to_overridden}变量,它在Javadoc注释中插入了“ @see my.package.name.SpuerclassName#methodName(int,my.ot

  • 试图向OpenLDAP添加一个新属性,但总是碰壁。我正在尝试向架构添加ipPhone属性,因为我不能在默认的telephoneNumber属性中包含*数字。 下面是我的LDIF文件,用于创建新属性并将其与objectClass类似。 我已经测试和谷歌了几个小时,但一直无法解决这个问题或找出我错过了什么!