Maven原型包构建

Maven archetype package construction

我创建了自己的原型,它有一个自定义的 pom.xml 和一个自定义的 class 包,如下所示:${groupId}.${artifactId}.core

问题出在包上。当我用我的原型包创建一个 Maven 项目时,它不像 ${groupId}.${artifactId}.core。只有${groupId}.

这是由原型生成的 class:

但是树是这样的(包不是按照我想要的方式构建的):

为什么我的项目没有按照我的预期构建,我是如何做到的?

这是我生成原型的项目树

MainCore.java

package ${package}.core;

import fl.raul.libs.methods.Common;

public class MainCore{

    public static void main(String[] args){

        //REMINDER : update version of fl.raul.libs - if needed.
        Common.testLibrary();

    }

}

archetype.xml

<archetype xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0 http://maven.apache.org/xsd/archetype-1.0.0.xsd">

    <id>libs-archetype</id>

    <sources>
        <source>src/main/java/core/MainCore.java</source>
    </sources>

    <allowPartial>true</allowPartial>

</archetype>

P.S.: 我认为这是来自 Intellij 的东西。我在 Eclipse 中测试了这个原型,包应该是这样的 (fl.raul.testers.core)。

将文件移动到正确的文件夹 (core) 并调整 archetype.xml,我认为是什么打破了这里的默认行为。

作为 package ${groupId}.${artifactId}.core 的替代方法,您可以使用 package ${package}.core;

${package} 属性 可以在原型生成时提供,默认(如果省略)为 ${groupId}.${artifactId}.

另请参考此"nice answer" & "wider scope question":