此方法存在一个存在的问题,位于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目录在那里。

10-07 23:56