gpt4 book ai didi

java - 从 Java 代码生成 Maven 原型(prototype)

转载 作者:行者123 更新时间:2023-11-30 06:24:44 24 4
gpt4 key购买 nike

我想知道是否可以在 Java 代码中运行 maven 命令:archetype:generate。我已经用 Maven 嵌入器试过这个,但是这个库已被弃用。

我想做一个原型(prototype):从远程目录生成,并捕获原型(prototype)所需的属性。

我要运行的maven命令例如:

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

对于某些原型(prototype),在您执行此请求后需要属性。我想在 GUI 屏幕上显示这些属性,就像 m2eclipse 插件一样,以便用户可以填写这些属性。

有人有什么建议吗?

最佳答案

您可以尝试使用 Maven Invoker .

将此依赖项添加到 pom.xml:

<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-invoker</artifactId>
<version>2.1.1</version>
</dependency>

下面是代码的样子:

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 );
}
}

关于java - 从 Java 代码生成 Maven 原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16541124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com