【发布时间】:2016-11-10 07:32:28
【问题描述】:
maven 命令行界面是否有任何选项/插件可以让我们创建一个新项目?我的意思是像 npm 这样用户友好的东西。
类似于在控制台上打字 $ xptocli init ?
【问题讨论】:
标签: maven command-line-interface
maven 命令行界面是否有任何选项/插件可以让我们创建一个新项目?我的意思是像 npm 这样用户友好的东西。
类似于在控制台上打字 $ xptocli init ?
【问题讨论】:
标签: maven command-line-interface
实际上,我对您必须编写的非常长的 maven 命令感到非常沮丧,因此我为此编写了一个 bash 脚本。我称它为mvnproj 并将其保存在usr/local/bin 中。这是代码
if [ $# -eq 4 ]; then
cd $1
mvn archetype:generate -DgroupId=$4.$3.$2 -DartifactId=$2 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false;
elif [ $# -eq 3 ]; then
mvn archetype:generate -DgroupId=$3.$2.$1 -DartifactId=$1 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false;
elif [ $# -eq 2 ]; then
mvn archetype:generate -DgroupId=$2.$1 -DartifactId=$1 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false;
else
mvn archetype:generate -DgroupId=$1 -DartifactId=$1 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false;
fi
你可以用 4 种不同的方式调用它
mvnproj dir projname groupname tldmvnproj projname groupname tldmvnproj projname groupnamemvnproj projname对于1.dir是你要放置的目录,在2-4中会放在你当前所在的目录。projname是你的项目名,groupname是你的公司名称,tld 是贵公司的顶级域。示例调用
mvnproj /tmp example stackoverflow commvnproj example stackoverflow commvnproj example stackoverflowmvnproj example【讨论】:
您可以使用 Maven 的 Archetype 插件来创建一个新项目:
$ mvn archetype:generate -B \
-DgroupId=org.mygroup \
-DartifactId=myartifact \
-DarchetypeArtifactId=maven-archetype-quickstart
【讨论】:
来自official maven documentation
为了创建最简单的 Maven 项目,从命令行执行以下命令:
注意: Archetype 插件 (mvn archetype:generate) 允许用户创建一个 Maven 项目,该插件默认包含在 maven 中。
mvn -B archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.mycompany.app -DartifactId=my-app
执行此命令后,您会注意到在 C:\Users\yourname\my-app 下创建了一个名为 my-app 的 目录(在windows 7) 并且该目录包含一个名为 pom.xml 的文件,该文件应如下所示:
<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
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>Maven Quick Start Archetype</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
【讨论】: