相关疑难解决方法(0)

从Java调用Maven目标

是否可以从Java调用Maven目标,例如,我是否可以执行以下操作:

mvn clean package
Run Code Online (Sandbox Code Playgroud)

来自Java类?

谢谢,尼克

java maven-2

20
推荐指数
1
解决办法
5931
查看次数

在Windows中从Java代码运行Maven?

我试图根据这个建议从我的java类运行maven:

如何从java运行maven?

Runtime.getRuntime().exec("mvn");
Run Code Online (Sandbox Code Playgroud)

但我得到:

java.io.IOException: Cannot run program "mvn": CreateProcess error=2, The system cannot find the file specified
Run Code Online (Sandbox Code Playgroud)

mvn在我的路径上,我可以从cmd运行它很好:

C:\Users\m>mvn -v
Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100)
Maven home: C:\apache-maven-3.0.3\bin\..
Java version: 1.6.0_20, vendor: Sun Microsystems Inc.
Java home: C:\Program Files\Java\jdk1.6.0_20\jre
...
Run Code Online (Sandbox Code Playgroud)

有什么建议?

java windows cmd maven

6
推荐指数
2
解决办法
8083
查看次数

测试Maven插件时抛出NoSuchElementException

我正在尝试使用maven插件测试工具来测试我的maven插件.我能在这个问题上找到的唯一文件是相当陈旧的,我发现类似的线程有相同的错误,但没有解决方案,至少没有解决问题的方法.在尝试运行lookupMojo方法时,错误可以归结为抛出NoSuchElementException.

有没有其他人遇到此问题或类似问题,您是如何解决的?如果您需要更多信息,请告诉我,我会发布更新.

插件类

@Mojo(name = "my_plugin", defaultPhase = LifecyclePhase.CLEAN, threadSafe = true)
public class MyPlugin extends AbstractMojo
{
    private static final Logger logger = LoggerFactory.getLogger(MyPlugin.class);

    @Parameter private String configFileLocation;

    public void execute() throws MojoExecutionException, MojoFailureException
    {
        logger.info("The config file location is: {}", configFileLocation);
        saveSystemProperties(new File(configFileLocation));
    }

    private void saveSystemProperties(final File file)
    {
        logger.info("Attempting to save system properties");
        try(FileOutputStream fr = new FileOutputStream(file))
        {
            System.getProperties().store(fr, "Properties");
            logger.info("Properties successfully saved. Closing File Output Stream …
Run Code Online (Sandbox Code Playgroud)

java maven-plugin maven

4
推荐指数
1
解决办法
1759
查看次数

在Maven插件中调用MavenCli失败

我已经创建了一个小的util包装MavenCli,使用quickstart原型生成了一个新的Maven项目。

当执行Util单元测试时,它运行良好(只是生成一个空的Maven项目)。

现在,我想将此小包装程序集成到Maven插件中。但是,当我执行mojo(在第三个Maven项目中)时,调用MavenCli失败,但出现以下异常:

[ERROR] Error executing Maven.
[ERROR] java.util.NoSuchElementException
  role: org.apache.maven.eventspy.internal.EventSpyDispatcher
  roleHint: 
[ERROR] Caused by: null
Run Code Online (Sandbox Code Playgroud)

该实用程序如下所示:

public void createProject() {
    final MavenCli cli = new MavenCli();
    System.setProperty("maven.multiModuleProjectDirectory", "/usr/share/maven");
    cli.doMain(new String[] { "archetype:generate", "-DgroupId=com.my.company",
            "-DartifactId=hello-world", "-DarchetypeArtifactId=maven-archetype-quickstart",
            "-DinteractiveMode=false" }, "/tmp", System.out, System.out);
}
Run Code Online (Sandbox Code Playgroud)

util的相关依赖项:

<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-embedder</artifactId>
    <version>3.3.9</version>
</dependency>
<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-core</artifactId>
    <version>3.3.9</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

mojo代码如下所示:

@Mojo(name = "custommojo", requiresProject = false)
public class CustomMojo extends AbstractMojo {

    @Override
    public void execute() throws MojoExecutionException, MojoFailureException { …
Run Code Online (Sandbox Code Playgroud)

java maven-plugin maven maven-embedder

2
推荐指数
1
解决办法
438
查看次数

标签 统计

java ×4

maven ×3

maven-plugin ×2

cmd ×1

maven-2 ×1

maven-embedder ×1

windows ×1