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":
我创建了自己的原型,它有一个自定义的 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":