此方法存在一个存在的问题,位于Codehaus JIRA #ARCHETYPE-57上,但是此故障单中列出的所有说明对我而言都是失败的。同样,marekdec How to get maven archetype to generate empty directories的博客文章对我来说也失败了。archetype.xml
中带有结尾/
的技巧对我不起作用:
<resources>
<resource>src/main/webapp/</resource>
Unable to find resource 'archetype-resources/src/main/webapp/'
另外,
fileSet
中的archetype-metadata.xml
目录对我不起作用:<fileSet filtered="true" encoding="UTF-8">
<directory>src/main/webapp/</directory>
</fileSet>
我使用以下maven-archetype-plugin创建我的自定义原型。
mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-5:create
还有其他解决方案吗?还是我错过了什么?谢谢
最佳答案
我做了一个快速测试,...对我有用。首先,我创建了一个原型:
$ mvn archetype:generate -B -DarchetypeArtifactId=maven-archetype-archetype \
-DgroupId=com.stackoverflow \
-DartifactId=Q2786966 \
-Dversion=1.0-SNAPSHOT \
我将
archetype.xml
重命名为archetype-metadata.xml
(前者用于Archetype 1.0.X,后者用于Archetype 2.0.X),因此项目看起来像:$ tree . . ├── pom.xml └── src └── main └── resources ├── archetype-resources │ ├── pom.xml │ └── src │ ├── main │ │ └── java │ │ └── App.java │ └── test │ └── java │ └── AppTest.java └── META-INF └── maven └── archetype-metadata.xml
And archetype-metadata.xml
contains:
<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor name="Q2786966">
<fileSets>
<fileSet filtered="true" encoding="UTF-8">
<directory>src/main/webapp</directory>
</fileSet>
<fileSet filtered="true" packaged="true">
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</fileSet>
</fileSets>
</archetype-descriptor>
然后,我安装了原型并用它来创建一个项目:
$ mvn install
$ cd ~/tmp
$ mvn archetype:generate -B -DarchetypeGroupId=com.stackoverflow \
-DarchetypeArtifactId=Q2786966 \
-DarchetypeVersion=1.0-SNAPSHOT \
-DgroupId=my.group \
-DartifactId=my-artifact \
-Dversion=1.0-SNAPSHOT
生成的项目如下所示:
$ tree my-artifact /
我的文物/
├──pom.xml
└──src
└──主要
├──Java
│└──我的团体
│└──App.java
└──webapp
空的webapp目录在那里。