Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 插件中local.m2 repo中的路径pom.xml_Maven_Plugins_Artifacts - Fatal编程技术网

Maven 插件中local.m2 repo中的路径pom.xml

Maven 插件中local.m2 repo中的路径pom.xml,maven,plugins,artifacts,Maven,Plugins,Artifacts,我试着制作一些maven插件。我需要在安装阶段之后获取工件和pom.xml的路径。我得到的工件路径如下: D:\Work\test\mvn\moduleFirst\target\first-1.0-SNAPSHOT.jar 和pom.xml路径,如下所示: D:\Work\test\mvn\moduleFirst\pom.xml 但是如果在pom.xml包中设置了“pom”,那么我得到的工件路径如下: C:\Users\user.m2\repository\com\test\mvn\1.0-SN

我试着制作一些maven插件。我需要在安装阶段之后获取工件和pom.xml的路径。我得到的工件路径如下:

D:\Work\test\mvn\moduleFirst\target\first-1.0-SNAPSHOT.jar

和pom.xml路径,如下所示:

D:\Work\test\mvn\moduleFirst\pom.xml

但是如果在pom.xml包中设置了“pom”,那么我得到的工件路径如下:

C:\Users\user.m2\repository\com\test\mvn\1.0-SNAPSHOT\mvn-1.0-SNAPSHOT.pom

和pom.xml:

D:\Work\test\mvn\pom.xml

我想从.m2本地回购获得所有路径。怎么可能呢

我的代码如下:

...
    /**
     * @parameter default-value="${project.file}"
     */
    private File pomFile;
...
    /**
     * @parameter default-value="${project.artifact}"
     */
    private Artifact artifact;
...
    public void execute() throws MojoExecutionException {
...
        getLog().info("POM file " + pomFile.getAbsolutePath());
        getLog().info("Artifact " + artifact.getFile().getAbsolutePath());
...
    }
我找到了解决办法

...
    /**
     * @parameter expression="${localRepository}"
     * @required
     * @readonly
     */
    protected ArtifactRepository localRepository;
...
    protected String getLocalRepoFile(Artifact artifact) {
        File file = new File(localRepository.getBasedir(), localRepository.pathOf(artifact));
        return file.getAbsolutePath();
    }
...
    public void execute() throws MojoExecutionException {
...
getLog().info("Artifact " + getLocalRepoFile(artifact));
...
    }
感谢maven安装插件:)