签名并发布Maven Archetype

时间:2018-04-02 10:12:15

标签: java maven maven-archetype

我正在尝试为我的项目FlexFX创建一些archetypes,我想与主项目本身一样构建和发布它们。我面临的问题是如何正确构建POM,以便生成的原型被签名和发布,而不是创建它们的'模板项目'。

这是我作为顶级Maven项目添加的新archetypes模块的模块结构:

archetypes (POM.xml)
        |
        + multi-module (POM.xml)
               |
                + parent
                |
                + integration-test
                |
                + target
                        |
                        + generated-sources
                                |
                                + archetype (POM)
                                        |
                                        + target
                                                |
                                                + multi-module-archetype-1.1.0-SNAPSHOT.jar

模块multi-module是我想要创建原型的模板,所以如果我要执行:

mvn archetype:create-from-project

我最终会在上面描述的目录结构下找到multi-module-archetype-1.1.0-SNAPSHOT.jar。但是,maven-gpg-plugin模块仅签署multi-module POM.xml并向下导航到archetype文件夹并签署该原型JAR。

这是<build> POM的multi-module部分:

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-archetype-plugin</artifactId>
                <version>${maven.archetype.plugin.version}</version>
                <executions>
                    <execution>
                        <id>archetype-generation</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>create-from-project</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-archetype-plugin</artifactId>
            <configuration>
                <skip>false</skip>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
        </plugin>
    </plugins>
</build>

我还假设如果我尝试发布生成的原型,即发布到Maven Central,虽然我还没有证实这一点,但它不会发生。我认为它需要签名?

总结我要解决的问题:

  1. 配置Maven以对生成的原型jar进行签名。
  2. 配置Maven以部署生成的原型jar。

0 个答案:

没有答案