从Java代码生成Maven原型
我想知道是否可以在Java代码中运行maven命令:archetype:generate。 我已经用maven嵌入式程序尝试过了,但是这个库已经被弃用了 我想做一个原型:从远程目录生成,并捕获原型所需的属性 例如,我要运行的maven命令是:从Java代码生成Maven原型,java,maven,catalog,maven-archetype,Java,Maven,Catalog,Maven Archetype,我想知道是否可以在Java代码中运行maven命令:archetype:generate。 我已经用maven嵌入式程序尝试过了,但是这个库已经被弃用了 我想做一个原型:从远程目录生成,并捕获原型所需的属性 例如,我要运行的maven命令是: mvn archetype:generate \ -DgroupId=com.maven \ -DartifactId=test \ -DarchetypeVersion=1.0-alpha-4 \ -DarchetypeG
mvn archetype:generate \
-DgroupId=com.maven \
-DartifactId=test \
-DarchetypeVersion=1.0-alpha-4 \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DarchetypeArtifactId=maven-archetype-j2ee-simple \
-DinteractiveMode=false \
-DarchetypeCatalog=http://repo1.maven.org/maven2/archetype-catalog.xml
对于某些原型,在执行此请求后,会有必需的属性。
我想在GUI屏幕上显示这些属性,就像m2eclipse插件一样,这样用户就可以填写这些属性
有人有什么建议吗?如果其他方法都失败了,您可以使用。您可以尝试使用 将此依赖项添加到
pom.xml
:
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-invoker</artifactId>
<version>2.1.1</version>
</dependency>
我不想依赖Maven安装。使用maven嵌入式程序,我不必在机器上安装maven,这就是我想要的。
import org.apache.maven.shared.invoker.*;
import java.util.Collections;
import java.util.Properties;
public class MavenInvoker {
public static void main(String[] args) throws MavenInvocationException {
InvocationRequest request = new DefaultInvocationRequest();
request.setGoals( Collections.singletonList("archetype:generate") );
request.setInteractive(false);
Properties properties = new Properties();
properties.setProperty("groupId", "com.maven");
properties.setProperty("artifactId", "test");
properties.setProperty("archetypeVersion", "1.0-alpha-4");
properties.setProperty("archetypeGroupId", "org.apache.maven.archetypes");
properties.setProperty("archetypeArtifactId", "maven-archetype-j2ee-simple");
properties.setProperty("archetypeCatalog", "http://repo1.maven.org/maven2/archetype-catalog.xml");
request.setProperties(properties);
Invoker invoker = new DefaultInvoker();
InvocationResult result = invoker.execute( request );
}
}