Maven:从pom.xml创建目录结构

lba*_*scs 24 java maven-3 maven

我有一个pom.xml文件(从另一个项目复制并改编),我想生成一个新项目的目录结构.哪个命令可以做到这一点?

请注意,我在网上找到了无数的例子,它解释了如何使用mvn archetype:create来创建一个pom.xml文件和目录结构,但我已经有了一个pom.xml,我想创建基于的目录在命令行上没有指定groupId,artifactId等.

mvn archetype:create-from-project似乎也创建了一个基于另一个pom.xml(?)的pom.xml,但我只想要这些目录.先感谢您!

编辑:我知道这不是一个"大问题",因为我可以手动创建目录:)我已经做了很多次了,我总觉得必须有一个更聪明的方法来做...

quu*_*x00 16

我同意应该有一种方法来指定maven本身应该查看我的pom并从中生成project/dir结构.我不知道如何做到这一点,但这就是我所做的:

第1步:将已创建的pom.xml移动到其他位置(如果您已经在将运行下一个命令的目录中拥有它,maven会抱怨)

第2步:从命令行,在新的maven项目目录中执行:

mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false -DgroupId=my.package.path -DartifactId=myartifact
Run Code Online (Sandbox Code Playgroud)

您必须编辑groupId和artifactId以匹配您的pom(叹气),但这会为您创建基本目录结构以及默认Java类和单元测试.

第3步:将pom.xml移动/复制到该项目目录中

第4步:运行一些maven命令,mvn clean package或者mvn dependency:tree开始下载依赖项

注意:我之所以包含这个答案是因为之前的一些答案建议使用mvn archetype:create,但根据maven网站的说法,该目标已被弃用以支持使用generate.我想展示如何独立于任何IDE或IDE插件来完成它.


Mat*_*att 12

不要听起来居高临下,但是:

mkdir -p src/main/java
mkdir -p src/main/resources
mkdir -p src/test/java
mkdir -p src/test/resources
Run Code Online (Sandbox Code Playgroud)

(或随意替换不同的目录).

我不知道任何maven命令将为您创建此结构而不创建新的pom文件.

  • 这根本不回答这个问题 (7认同)
  • 或者以下mkdir:mkdir -p src/{main,test}/{java,resources} (7认同)
  • 是的,我想到了这个解决方案(实际上我已经做过很多次了),但是不敢相信没有Maven支持的方法...假设在pom.xml中配置了一些非标准目录...无论如何,如果没有更好的答案,我会接受这个:) (2认同)