【发布时间】:2021-09-09 09:52:56
【问题描述】:
使用 Apache Maven 3.8.2 (ea98e05a04480131370aa0c110b8c54cf726c06f)
项目结构如下:
My-archetype
| -- pom.xml
`--src
`--main
`resources
|-- META-INF
`--maven
`--archetype-metadata.xml
|--archetype-resources
|--pom.xml
|--log4j2.xml
`--src
|--main
| `--java
| `--App.java
| `--conf
注意:conf 是一个目录
项目pom是
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>demo</groupId>
<artifactId>my-archetype</artifactId>
<version>1</version>
<packaging>maven-archetype</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.archetype</groupId>
<artifactId>archetype-packaging</artifactId>
<version>3.1.1</version>
</extension>
</extensions>
</build>
</project>
archetype-metadata.xml 是:
<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor
xsi:schemaLocation="https://maven.apache.org/plugins/maven-archetype-plugin/
archetype-descriptor/1.1.0
http://maven.apache.org/xsd/archetype-descriptor-1.1.0.xsd" name="at"
xmlns="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-des
criptor/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<fileSets>
<fileSet filtered="true" encoding="UTF-8">
<directory></directory>
<includes>
<include>changeme.gitignore</include>
<include>log4j2.xml</include>
</includes>
</fileSet>
<fileSet filtered="false" packaged="true" encoding="UTF-8">
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</fileSet>
<fileSet filtered="false" packaged="false" encoding="UTF-8">
<directory>toplevel</directory>
</fileSet>
</fileSets>
</archetype-descriptor>
当我构建项目时,我 (mvn install) 有一条警告消息: [警告] 没有 Archetype IT 项目:找不到根“项目”目录。
我在 windows 10 环境下批处理文件是:
mvn archetype:generate "-DarchetypeGroupId=demo"
"-DarchetypeArtifactId=my-archetype" "-DarchetypeVersion=1" "-DgroupId=demo"
"-DartifactId=at" "-Dpackage=d" "-Dversion=0.0.1-SNAPSHOT"
"-DinteractiveMode=false"
输出是:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom
>-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom
]---------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:3.2.0:generate (default-cli) >
generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:3.2.0:generate (default-cli) <
generate-sources @ standalone-pom <<<
[INFO]
[INFO]
[INFO] --- maven-archetype-plugin:3.2.0:generate (default-cli) @
standalone-pom ---
[INFO] Generating project in Batch mode
[INFO] Archetype repository not defined. Using the one from
[demo:my-archetype:1] found in catalog local
[INFO]
----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype:
my-archetype:1
[INFO]
----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: demo
[INFO] Parameter: artifactId, Value: at
[INFO] Parameter: version, Value: 0.0.1-SNAPSHOT
[INFO] Parameter: package, Value: d
[INFO] Parameter: packageInPathFormat, Value: d
[INFO] Parameter: package, Value: d
[INFO] Parameter: version, Value: 0.0.1-SNAPSHOT
[INFO] Parameter: groupId, Value: demo
[INFO] Parameter: artifactId, Value: at
[INFO] Project created from Archetype in dir:
C:\Users\pshan\eclipse-workspace\my-archetype\x\at
[INFO]
------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 3.172 s
[INFO] Finished at: 2021-09-05T11:47:43-04:00
[INFO]
------------------------------------------------------------------------
\toplevel 的目录已创建
在\src\main\java\d 的目录被创建,文件App.java 被创建 并且包名正确放置在文件中。
问题是根本没有创建目录 conf。我期待 它在 在\src\main\java\d\conf
但它没有被创建。我做错了什么?
我确实注意到了一件事 .. 如果我放置一个像 delme.txt 这样的文件并添加 **/*.txt 到 archetype-metadata 文件夹和文件是 创建的。但是我只想要一个空文件夹。
【问题讨论】:
-
目录
conf是否包含文件? -
在测试中我确实在 conf 中放置了一个文件,然后它被创建,似乎可能需要,但是在这种情况下,我不希望在 conf 中有任何文件