1

私はいくつかのMavenプラグインを作成しようとしています。インストールフェーズの直後に、artifactと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());
...
    }
4

1 に答える 1

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-install-pluginに感謝します:)

于 2012-05-21T15:38:41.333 に答える