2012-05-18 38 views
1

我尝试制作一些maven插件。我需要在安装阶段后才能获得工件和pom.xml的路径。我喜欢这件神器路径:插件中的本地.m2回购路径pom.xml

d:\工作\测试\ MVN \ moduleFirst \目标\第一-1.0-SNAPSHOT.jar

而且pom.xml的路径是这样的:

d:\工作\测试\ MVN \ moduleFirst \的pom.xml

但是,如果在pom.xml中包被设置为 “POM”,然后我得到了这样的神器路径:

C:\用户\ user.m2 \库\ com \ test \ mvn \ 1.0-SNAPSHOT \ mvn-1.0-SNAPSHOT.pom

而且pom.xml中:

d:\工作\测试\ 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()); 
... 
    } 

回答

0

我找到了解决办法。

... 
    /** 
    * @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的安装,插件:)