【发布时间】:2013-03-28 16:01:56
【问题描述】:
我有一个原型项目,看起来像这样(有两个模块,__artifactId__-1 和 __artifactId__-2):
Parent
pom.xml
__artifactId__-1
pom.xml
__artifactId__-2
pom.xml
并且,当我使用此原型生成项目时,工件 id 为“Infra”,它应生成如下结构:
Parent
pom.xml
Infra-1
pom.xml
Infra-2
pom.xml
确实如此。所以这确实有效。
不起作用的是在父 pom.xml 中,我已将此模块包含为:
<modules>
<module>__artifactId__-1</module>
<module>__artifactId__-2</module>
</modules>
这些模块条目不会被重命名为(在生成时):
<modules>
<module>Infra-1</module>
<module>Infra-2</module>
</modules>
这就是我想要的。
知道如何做到这一点,谢谢。
更新 我按照要求在此处添加元数据 xml 文件,但我不想修改 archetype-metadata.xml 文件。 因为我想使用 create-from-project 命令创建原型,然后在没有任何人工干预或返工的情况下安装和生成。
<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" name="archetype-1"
xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<fileSets>
<fileSet filtered="true" encoding="UTF-8">
<directory>__artifactId__-1/src</directory>
<includes>
<include>**/*.xml</include>
</includes>
</fileSet>
<fileSet filtered="true" encoding="UTF-8">
<directory>support</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
<include>**/*.txt</include>
</includes>
</fileSet>
<fileSet filtered="true" encoding="UTF-8">
<directory>properties/deploy</directory>
<includes>
<include>**/*.xml</include>
</includes>
</fileSet>
<fileSet filtered="true" encoding="UTF-8">
<directory>__artifactId__-2/target</directory>
<includes>
<include>**/*.xml</include>
</includes>
</fileSet>
<fileSet filtered="true" encoding="UTF-8">
<directory>__artifactId__-2/src</directory>
<includes>
<include>**/*.jsp</include>
<include>**/*.java</include>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</fileSet>
<fileSet filtered="true" encoding="UTF-8">
<directory>properties</directory>
<includes>
<include>**/*.properties</include>
</includes>
</fileSet>
<fileSet filtered="true" encoding="UTF-8">
<directory>__artifactId__-2</directory>
<includes>
<include>**/*.project</include>
<include>**/*.xml</include>
<include>**/*.classpath</include>
</includes>
</fileSet>
<fileSet filtered="true" encoding="UTF-8">
<directory>__artifactId__-1</directory>
<includes>
<include>**/*.xml</include>
</includes>
</fileSet>
<fileSet filtered="true" encoding="UTF-8">
<directory>support/lib</directory>
<includes>
<include>**/*.txt</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8">
<directory>__artifactId__-2/.settings</directory>
<includes>
<include>**/*.prefs</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8">
<directory>support</directory>
<includes>
<include>**/*.jar</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8">
<directory>__artifactId__-2/src</directory>
<includes>
<include>**/*.jpg</include>
<include>**/*.MF</include>
<include>**/*.md</include>
<include>**/*.png</include>
<include>**/*.jar</include>
<include>**/*.js</include>
<include>**/*.ftl</include>
<include>**/*.xsd</include>
<include>**/*.XML</include>
<include>**/*.TXT</include>
<include>**/*.gif</include>
<include>**/*.css</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8">
<directory>__artifactId__-2</directory>
<includes>
<include>**/*.checkstyle</include>
<include>**/*.pmd</include>
<include>**/*.log</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8">
<directory>support/bin</directory>
<includes>
<include>**/*.bat</include>
<include>**/*.log</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8">
<directory>support/lib</directory>
<includes>
<include>**/*.jar</include>
</includes>
</fileSet>
</fileSets>
</archetype-descriptor>
【问题讨论】:
-
你能发布archetype-metadata.xml吗?
-
我可以,而且我在谷歌搜索时看到了一个例子。但我不想修改 archetype-metadata.xml 文件。因为我想使用 create-from-project 命令创建原型,然后在没有任何人工干预或返工的情况下安装和生成。
-
archetype-metadata.xml 缺少模块部分。请参阅此maven.apache.org/archetype/maven-archetype-plugin/specification/…。我不知道为什么它丢失了,但我确定这就是你的根 pom 无效的原因。
-
有没有办法找出发生这种情况的原因?
-
在生成原型并尝试理解日志时使用 -X 选项运行 mvn(即不是在生成项目时......已经太晚了)
标签: maven module maven-archetype